اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
با سلام و خسته نباشید
دوستان من میخوام یک گروه از فایل های پی دی اف رو به پایگاه داده اینزرت کنم
در حال حاضر بصورت تک تک می تونم این کار و بکنم
اما چون تعداد فایل ها زیاده امکان اینزرت تک به تک وجود نداره
جدول توی پایگاه داده از دوتا فیلد تشکیل میشه که اولی از نوع
varbinary(max )
هست و دومی از نوع
nvarchar(max)
با این کد فایل ها رو اینزرت میکنم:
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
byte[] jalal = null;
FileInfo fi = new FileInfo(ofd.FileName);
FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long totalbytes = new FileInfo(ofd.FileName).Length;
jalal = br.ReadBytes((Int32)totalbytes);
fs.Close();
fs.Dispose();
br.Close();
byte[] bytes = File.ReadAllBytes(ofd.FileName);
SqlParameter fileP = new SqlParameter("@file", SqlDbType.VarBinary);
fileP.Value = bytes;
SqlParameter name = new SqlParameter("@pname", SqlDbType.NVarChar);
name.Value = fi.Name;
SqlCommand myCommand = new SqlCommand();
myCommand.Parameters.Add(fileP);
myCommand.Parameters.Add(name);
SqlConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=pdf;Integrated Security=True;");
conn.Open();
myCommand.Connection = conn;
myCommand.CommandText = "spPdfInsert";
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.ExecuteNonQuery();
conn.Close();
لطفا راهنمایی کنید برای اینکه بتونم همه ی فایل ها رو اینزرت کنم باید چه تغییری توی این کد ها بدم
ممنونم
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
من اينطوري اينزرت ميكنم
public void InsertFileGroup(string[] FileNames)
{
string sqlcmd = "";
int i = 0;
List<SqlParameter> LSQ = new List<SqlParameter>();
byte[] bt;
foreach (string tmp in FileNames)
{
sqlcmd += " INSERT INTO [dbo].[TrsDocument] " +
" ([UqID],[Pic]) " +
" VALUES(NEWID(),@pic1" + i ;
bt = System.IO.File.ReadAllBytes(tmp);
LSQ.Add(new SqlParameter("pic1" + i, bt));
i++;
}
SqlCommand Cmd = new SqlCommand(sqlcmd, cnn);
Cmd.Parameters.AddRange(LSQ.ToArray());
Cmd.ExecuteNonQuery();
}
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
متشکرم
کد شما خیلی حرفه ای هست و تازه کارهایی مثل من نمی تونیم اون رو بفهمیم
یه راه پیدا کردم که این کار رو انجام میده
میزارم اینجا تا شاید به درد یکی مثل خودم بخوره
حالا برای پرینت اون و نشون دادن پرینت پرویو باید چجوری کد بنویسم؟ میتونم اون رو مستقیم بفرستم برای پرینت ، اما میخوام کادر تنظیمات پرینتر نشون داده بشه شاید کاربر بخاد پشت و رو یا دو برگه رو در یک برگه پرینت بگیره
کلا برای نمایش پرینت پرویو و تنظیمات پرینتر چجوری باید عمل کرد؟
اینم کد اینزتی که خودم نوشتم:
try
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = true;
ofd.ShowDialog();
int c = ofd.FileNames.Length;
int cc = 0;
string pppp = Path.GetDirectoryName(ofd.FileName);
foreach (var file in ofd.FileNames)
{
byte[] jalal = null;
FileInfo fi = new FileInfo(file.ToString());
FileStream fs = new FileStream(file.ToString(), FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long totalbytes = new FileInfo(file.ToString()).Length;
jalal = br.ReadBytes((Int32)totalbytes);
fs.Close();
fs.Dispose();
br.Close();
byte[] bytes = File.ReadAllBytes(file.ToString());
SqlParameter fileP = new SqlParameter("@file", SqlDbType.VarBinary);
fileP.Value = bytes;
SqlParameter name = new SqlParameter("@pname", SqlDbType.NVarChar);
name.Value = fi.Name;
SqlCommand myCommand = new SqlCommand();
myCommand.Parameters.Add(fileP);
myCommand.Parameters.Add(name);
SqlConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=pdf;Integrated Security=True");
conn.Open();
myCommand.Connection = conn;
myCommand.CommandText = "spPdfInsert";
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.ExecuteNonQuery();
conn.Close();
cC++;
}
MessageBox.Show("تعداد "+cc+" فایل اضافه شد");
}
catch { }
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
نقل قول:
نوشته شده توسط
elderado
متشکرم
کد شما خیلی حرفه ای هست و تازه کارهایی مثل من نمی تونیم اون رو بفهمیم
یه راه پیدا کردم که این کار رو انجام میده
میزارم اینجا تا شاید به درد یکی مثل خودم بخوره
حالا برای پرینت اون و نشون دادن پرینت پرویو باید چجوری کد بنویسم؟ میتونم اون رو مستقیم بفرستم برای پرینت ، اما میخوام کادر تنظیمات پرینتر نشون داده بشه شاید کاربر بخاد پشت و رو یا دو برگه رو در یک برگه پرینت بگیره
کلا برای نمایش پرینت پرویو و تنظیمات پرینتر چجوری باید عمل کرد؟
اینم کد اینزتی که خودم نوشتم:
try
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = true;
ofd.ShowDialog();
int c = ofd.FileNames.Length;
int cc = 0;
string pppp = Path.GetDirectoryName(ofd.FileName);
foreach (var file in ofd.FileNames)
{
byte[] jalal = null;
FileInfo fi = new FileInfo(file.ToString());
FileStream fs = new FileStream(file.ToString(), FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long totalbytes = new FileInfo(file.ToString()).Length;
jalal = br.ReadBytes((Int32)totalbytes);
fs.Close();
fs.Dispose();
br.Close();
byte[] bytes = File.ReadAllBytes(file.ToString());
SqlParameter fileP = new SqlParameter("@file", SqlDbType.VarBinary);
fileP.Value = bytes;
SqlParameter name = new SqlParameter("@pname", SqlDbType.NVarChar);
name.Value = fi.Name;
SqlCommand myCommand = new SqlCommand();
myCommand.Parameters.Add(fileP);
myCommand.Parameters.Add(name);
SqlConnection conn = new SqlConnection(@"Data Source=.;Initial Catalog=pdf;Integrated Security=True");
conn.Open();
myCommand.Connection = conn;
myCommand.CommandText = "spPdfInsert";
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.ExecuteNonQuery();
conn.Close();
cC++;
}
MessageBox.Show("تعداد "+cc+" فایل اضافه شد");
}
catch { }
عزیز
به پروژه
myCommand.CommandText = "spPdfInsert";
اضافه نکردی
StoredProcedure spPdfInsert
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
اگه منظورتون کد های استور پروسیجر هست ، کد اینه:
Procedure [dbo].[spPdfInsert] (
@file varbinary(max) = null,
@pname nvarchar(950)
)
AS
Insert Into jal
( pdfdata,pdfname )
Values
( @file,@pname )
این کد کار می کنه ها!!!
برای نشون دادن فرم تنظیمات پرینتر و پرینت کردن یک فایل از روی هارد دیسک چه کدی باید بنویسم. لطفا راهنمایی کنید. ممنونم
با این کد فایل میره برای پرینت ، اما میخوام فرم تنظیمات پرینت نمایش داده بشه
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = @"c:\windows\jalal.pdf";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process p = new Process();
p.StartInfo = info;
p.Start();
p.WaitForInputIdle();
System.Threading.Thread.Sleep(3000);
if (false == p.CloseMainWindow())
p.Kill();
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
از کنترل پرینت در تول باکس استفاده کن
به این لینک برو
http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
ممنونم دوست عزیز
اما نتونستم از کدی که توی این لینک بود استفاده کنم
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
بالاخره بعد از کلی سرچ این کد ها کمکم کرد
http://support.microsoft.com/kb/322091
نقل قول: اینزرت کردن گروهی از فایل های پی دی اف به پایگاه داده
نقل قول:
نوشته شده توسط
elderado
دوستان من میخوام یک گروه از فایل های پی دی اف رو به پایگاه داده اینزرت کنم
دوست گرامی، معمولا فایل رو داخل جداول پایکاه داده قرار نمیدن
شما باید اون رو جداگانه در یک مسیر مشخص ذخیره و آدرس فایل رو در جدول نگهداری کنید