PDA

View Full Version : ریختن نوع image بانک در متغیر



Unknownlive
شنبه 03 مرداد 1388, 10:39 صبح
با سلام من در بانک SQL یک فیلد از نوع image تعریف کردم حالا می خواهم در c# اطلاعات را بارگذاری کنم و این فیلد را در یک متغیر بریزم حالا باید متغیر در C# از چه نوع داده ای باشد؟!!!

hozouri
شنبه 03 مرداد 1388, 10:46 صبح
از نوع داده byte[] استفاده کن.

hozouri
یک شنبه 11 مرداد 1388, 12:56 عصر
اینم برای نوشتن در فایل هیچ فرقی نمی کنه چه فایلی رو می خوای ذخیره کنی :


sqlConnection.Open();
System.Data.SqlClient.SqlDataAdapter sqlDataAdapter = new
System.Data.SqlClient.SqlDataAdapter("Select * From TableName", sqlConnection);
DataSet dataSet = new DataSet();
sqlDataAdapter.Fill(dataSet, "Table1");
DataTable dataTable = dataSet.Tables["Table1"];
FileInfo fileInfo = new FileInfo(PathFile);
FileStream fileStream = new FileStream(PathFile, FileMode.Open);
byte[] bytFile = new byte[(int)fileInfo.Length];
fileStream.Read(bytLogo, 0, (int)fileInfo.Length);
fileStream.Close();

DataRow newRow = dataTable.NewRow();
newRow["File"] = bytFile;
newRow["FileName"] = // نام فایل
newRow["FileType"] = // پسوند فایل فایل
dataTable.Rows.Add(newRow);
System.Data.SqlClient.SqlCommandBuilder sqlCommandBuilder = new System.Data.SqlClient.SqlCommandBuilder(sqlDataAda pter);
sqlDataAdapter.Update(dataSet, "Table1");
sqlCommandBuilder.Dispose();
sqlConnection.Close();


این برای خواندن از بانک است اسم فایل و پسوند رو هم ذخیره کنید:



byte[] bytFile = (byte[])(dataTable.Rows[0]["file"]);
string strType = dataTable.Rows[0]["fileType"];
string strPath = AppDomain.CurrentDomain.BaseDirectory + @"file." + strType;
FileStream fileStream = new FileStream(strPath, FileMode.Create);
fileStream.Write(bytFile, 0, bytLogo.Length);
fileStream.Close();

//حالا از فایل میشه استفاده کرد مثلاً اگر عکس بود BackgroundImage یک image می کنم.
image1.BackgroundImage = Image.FromFile(strPath);

In_Chan_Nafar
یک شنبه 11 مرداد 1388, 16:50 عصر
اگر خواهان سرعت بالاتر و... هستيد سراغ Sql 2008 و نوع داده FileStream برو