PDA

View Full Version : نحوه ذخیره و بازیابی تصویر در بانک اطلاعاتی



hassan_kahrizy
شنبه 15 مرداد 1384, 17:54 عصر
بسمه تعالی
با سلام
می خواستم تصاویر مورد نظز کاربرم را وارد باانک اطلاعاتی بکنم به نظر شما از چه بانک اطلاعاتی استفاده کنم که بهروری بیشتر داشته باشه
آیا باید همه در یک بانک ذخیره بشه و یا می شه بانک های جدید نیز توسط برنامه ایجاد کرد
اگر سورسی در این زمینه داشته باشید ممنون می شم
با تشکر

dot_net_lover2
پنج شنبه 20 مرداد 1384, 13:49 عصر
دوست عزیز ساختن جدول به ازای هر مجموعه کار غیر منتقی است ، بهتر است برای این کار به یک Design ایده آل برای یک جدول برسی.
واسه دخیره سازی عکس از کد زیر استفاده کن با این تفاوت که با Sql connection کار کنه ، چون همانطور که در تاپیک میبینی با ODBC مشکل داره
http://www.barnamenevis.org/forum/showthread.php?t=26331

sinpin
جمعه 06 آبان 1384, 02:38 صبح
اگر درست منظورت را فهمیده باشم باید از پایگاه داده paradox استفاده کنی.


ببخشید ولی از کجا به ابن نتیجه رسیدید !
پاراداکس که expire شده دیگه

sinpin
جمعه 06 آبان 1384, 02:47 صبح
سلام

1) تفاوت بانک OLE DB (SQL Provider) با بانکهایی که خود SQL Server میسازه؟
2) من میخوام از یه DB استفاده کنم که فقط Clientی باشه و با دستورات SQL کار کنه... آیا هست؟

ممنون میشم..

1- سئوال اول مبهمه ! اگه منظور نوع کانکشن است با توجه به جواب دوم از oledbconnection استفاده کنید
2- از access استفاده کنید

sinpin
چهارشنبه 11 آبان 1384, 23:53 عصر
dim cmd as new sqlclient.slqcommand

(cmd.parameters.add("@serialnum",239

sinpin
شنبه 14 آبان 1384, 00:09 صبح
یعنی میگین..
برای استفاده از Access از دستورات SQL استفاده کنم؟؟.. مثلا دستورات واکشی و غیره شبیه اند؟

1- بله
2- دستورات واکشی ؟ اگه منظور دستورات select , ... باید بگم که بله و sql یعنی : standard query language

Happy_davood
شنبه 19 آذر 1384, 11:08 صبح
سلام
یه برنامه نوشتم که باید یک سری تصویر رو هم در بانک اطلاعاتی قرار بده . بانک هم از نوع MS Access هست . در طرف بانک فیلد تصویر رو از نوع OLE Object انتخاب کردم ولی وقتی می خوام پارامتر مربوط به این فیلد رو وارد Query کنم نمی دونم باید از چه نوعی باشه .


this.OleDB_Command.Parameters.Add("@Pic", System.Data.OleDb.OleDbType.?????);



ممنون از همه

Happy_davood
یک شنبه 20 آذر 1384, 10:28 صبح
خوب این هم روش بدی نیست و البته بهتر هست که به جای آدرس تصویر اون رو داخل پوشه برنامه زد و با یه چیز دیگه مثلاً نام کاربری یا ID اون تصویر در بانک ذخیره کرد . در اینصورت تداخل بین اسامی هم رخ نمی ده .

ولی ار همه اینها گذشته این روش مناسب نیست . چون امکان پاک شدن تصاویر و یا مشاهده اون توسط سایر کاربران وجود داره . از طرفی من قرار هست بانک رو جابجا کنم و این اصلاً خوب نیست که در هر جابجایی علاوه بر فایل ام دی بی تصاویر رو هم جابجا کنم .
پس باید در همون بانک ذخیره کنم . الان اگه می تونید به مشکل من جواب بدید !

morteza_zeus
چهارشنبه 23 آذر 1384, 08:10 صبح
اگه عکس رو تو بانک ذخیره نکنی برای چاپ اون عکس با Crystal Report هم مشکل پیدا میکنی

dot_net_lover2
چهارشنبه 23 آذر 1384, 09:28 صبح
من با OLE که کار کردم جواب نداد ولی SQL Connection و SQL DB کامل جواب داد با وجود اینکه در هر دو روش به یک شکل کد زده شده و فقط نوع Connection فرق داشته.

ولی اگر مقدور پیشنهاد میکنم که از SQL DB و SQL Connection استفاده کن.

Happy_davood
پنج شنبه 01 دی 1384, 10:55 صبح
خوب ممنون از همه .
من نوع پارامتر رو VarBinary انتخاب کردم . تصویر رو هم بصورت آرایه ای از بایت اضافه کردم به پارامتر و جواب داد .

باز هم ممنونم .

hdv212
یک شنبه 16 اردیبهشت 1386, 03:15 صبح
برای ذخیره ی عکس در دیتابیس باید اول عکستو از طریق برنامه به آرایه ای از بایت ببری، اینطوری :
//Define this Function for convert Image To byte array
protected byte[] ReadBitmap2ByteArray(string fileName)
{
using(Bitmap image = new Bitmap(fileName))
{
MemoryStream stream = new MemoryStream();
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
return stream.ToArray();
}
}

بعد باید عمل Insert رو انجام بدی، اینطوری :

//Define this function for Save Image To Database
protected void StoreBlob2DataBase(byte[] content)
{
SqlConnection con = sqlConnection1;
con.Open();
try
{
// insert new entry into table
SqlCommand insert = new SqlCommand(
"insert into tableName (ImageField) values (@image)",con);
SqlParameter imageParameter =
insert.Parameters.Add("@image", SqlDbType.Binary);
imageParameter.Value = content;
imageParameter.Size = content.Length;
insert.ExecuteNonQuery();
}
finally
{
con.Close();
}
}

موفق باشید

choobin84
یک شنبه 16 اردیبهشت 1386, 07:58 صبح
.
.
.
بعد باید عمل Insert رو انجام بدی، اینطوری :

.
.
.
موفق باشید
برای بازیابی چیکار باید کرد؟مثلا توی یه picBox نشونش بده

hdv212
یک شنبه 16 اردیبهشت 1386, 14:48 عصر
راههای زیادی وجود داره ولی اول باید برعکس عمل قبلی رو انجام بدی، یعنی از آرایه ای از بایت ببری به Image، اینطوری :

CurrencyManager cm =(CurrencyManager)BindingContext[dt];
DataRowView drv = (DataRowView) cm.Current;
byte[] content = (byte[])drv["fieldName"];
MemoryStream stream = new MemoryStream(content);
Bitmap image = new Bitmap(stream);
pictureBox1.Image = image;

دقت کن در خط اول، متغیر dt از نوع DataTable هست که دیتاگریدت بهش بایند شده.

poya011
پنج شنبه 10 خرداد 1386, 16:26 عصر
کد مربوط به باز کردن عکس


openFileDialog1.ShowDialog();
textBox1.Text = openFileDialog1.FileName;
pictureBox1.Image = Bitmap.FromFile(openFileDialog1.FileName);

کد مربوط به ذخیره در اکسس


MemoryStream s ;
s = new MemoryStream();
pictureBox1.Image.Save(s,System.Drawing.Imaging.Im ageFormat.Bmp);
DataRow dr = ds.Tables[0].NewRow();
dr["name"] = "dskkdsjkdsj";
dr["pic"] = s.ToArray();
ds.Tables[0].Rows.Add(dr);
da.Update(ds);


کد مربوط به باز کردن عکس از پایگاه اکسس


object o = ds.Tables[0].Rows[0]["pic"];
MemoryStream s;
s = new MemoryStream( (byte[])(o));
pictureBox2.Image = Bitmap.FromStream(s);

هرکی مشکل داشت بگید تا رفع کنم با تشکر از استاد گلم آقای مرجوی

poya011
جمعه 11 خرداد 1386, 12:17 عصر
به در خواست دوستان برنامه را در سایت گذاشتم در ضمن در پاسخ به نوع نوع فیلد باید از نوع ole object باشد
دانلود فایل
http://www.savefile.com/files/770773
لطفا نظر هم بدین چون همینطوری این را کشف نکردم حداقل 2ماه کار کردم

choobin84
جمعه 11 خرداد 1386, 19:28 عصر
سلام
فیلد عکس در دیتابیس باید از چه نوع تعریف بشه
در SQL از نوع باینری و از نوع image می توانید ذخیره کنید. در اکسس فکر می کنم از نوع OLEObject باشه

fakhredin
شنبه 12 خرداد 1386, 06:12 صبح
مرسی
آیا در SQL هم از همین روش باید استفاده کنم
اگه فرق می کنه لطفا یه مثال کوچولو بزارید

dot_net_lover2
شنبه 12 خرداد 1386, 10:54 صبح
string cnStr = "workstation id=ComputerName;packet size=4096;integrated security=SSPI;initial catalog=DBName;persist security info=False";
SqlConnection cn;


MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms,pictureBox1.Image.RawFor mat);
byte[] arrImage = ms.GetBuffer();
ms.Close();

cn = new SqlConnection(cnStr);
SqlCommand command = new SqlCommand("INSERT Into pictures(pic) Values(@Picture)", cn);
command.Parameters.Add(new SqlParameter("@Picture",SqlDbType.Image)).Value = arrImage;
cn.Open();
command.ExecuteNonQuery();
cn.Close();

iranrose63
سه شنبه 09 مرداد 1386, 10:37 صبح
تایپ فیلدت رو از نوع(varbinary(MAX قرار بده برای ذخیره تصویر میتونی از کد زیر استفاده کنی


if (picturefilename != "")
{
FileStream stream = new FileStream(picturefilename, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
byte[] photo = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();
sqlCommand1.Parameters.Add("@picture", SqlDbType.VarBinary, photo.Length).Value = photo;
}
else
sqlCommand1.Parameters.Add("@picture", SqlDbType.VarBinary).Value = SqlBinary.Null;

و برای خواندن اطلاعات و نشون دادن اون تو یه picturebox از کد زیر :


sqlCommand1.CommandText = "select picture from table";
dr = sqlCommand1.ExecuteReader(CommandBehavior.Sequenti alAccess);
if (dr.HasRows)
{
dr.Read();
if (!dr.IsDBNull(0))
{
SqlBytes bytes = dr.GetSqlBytes(0);
picturebox.Image = Image.FromStream(bytes.Stream);
}
else
picturebox.Image = null;
}

hdv212
سه شنبه 23 مرداد 1386, 01:26 صبح
این کد رو میتونی در رویداد dataGridView_selectedindexChanged بنویسی :

DataTable dt = ds_GozareshParvande1.Tables["Gozaresh_Parvande"];

DataRow newrow = dt.Rows[dataGridView1.CurrentCell.RowIndex];
if (newrow["pic"] != System.DBNull.Value)
{
byte[] content = (byte[])newrow["pic"];
MemoryStream stream = new MemoryStream(content);
Bitmap image = new Bitmap(stream);
pictureBox_madadjoo.Image = image;
}
else
pictureBox_madadjoo.Image = Image.FromFile("null.jpg");

smt_414
دوشنبه 29 مرداد 1386, 23:50 عصر
با سلام خدمت دوستان عزیز و تشکر مخصوص از دو دوست عزیزمون iranrose63 و hdv212
خود من برای ذخیره عکس در پایگاه داده و بازیابی اون و نمایش در یک pictureBox با کمک مطالب موجود در این تایپیک و صرف وقت چند ساعته تونستم این کار رو انجام بدم
و خواستم کد اون رو اینجا قرار بدم که دوستانی که مثله من تازه شروع به کار کردن و احتیاج به توضیحات تکمیلی و بالاخص کد کامل برنامه دارن بتونن از این مطلب استفاده کنن.
البته جا داره دوباره بر این موضوع تاکید داشته باشم که این کد برگرفته از مطالب دوستان در همین تایپیک می باشد و دوباره ازشون کماله تشکر رو دارم. :تشویق:
کد های بخش اضافه کردن عکس:
لازم به توضیح که برای تعیین نوع فیلد photo در پایگاه داده من هر دو نوع image و varbinary max
رو امتحان کردم و ظاهرا مثله هم جواب دادن

using System;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;
using System.Drawing;
namespace BlobSQLCETest
{
public partial class Form1 : Form
{
private System.Windows.Forms.PictureBox PictureBox1;
public Form1()
{
InitializeComponent();
}

private void AddEmployee(string photoFilePath, string connectionString)
{
byte[] photo = GetPhoto(photoFilePath);
{
SqlConnection objConnection = new SqlConnection("Data Source=taba;Initial Catalog=webdata;Integrated Security=True;");
SqlCommand command = new SqlCommand("INSERT INTO Table2 (Photo) " + "Values(@Photo)", objConnection);
command.Parameters.Add("@Photo", SqlDbType.Image, photo.Length).Value = photo;
objConnection.Open();
command.ExecuteNonQuery();
}
}
private byte[] GetPhoto(string filePath)
{
FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
byte[] photo = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();
return photo;
}
private void b_insert_Click(object sender, EventArgs e)
{
AddEmployee(@"C:\photo1.jpg", @"Data Source='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\webdata.mdf'");




کدهای بخش بازیابی و رویت عکس

private void showphoto()
{
SqlConnection objConnection = new SqlConnection("Data Source=taba;Initial Catalog=webdata;Integrated Security=True;");
DataSet objDataSet = new DataSet();
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.CommandText = "SELECT photo FROM Table2";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.Fill(objDataSet, "Table2");
DataView objDataView = new DataView(objDataSet.Tables["Table2"]);
objConnection.Open();
byte[] arrPicture = ((byte[])(objDataSet.Tables[0].Rows[0][0] ));
MemoryStream ms = new MemoryStream(arrPicture);
pictureBox1.Image = Image.FromStream(ms);
PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
PictureBox1.BorderStyle = BorderStyle.Fixed3D;
PictureBox1.BringToFront();
}
private void b_show_Click(object sender, EventArgs e)
{
showphoto();
}


}


امیدوارم این مطب برای دوستان مفید واقع شه.

alirzn
شنبه 17 شهریور 1386, 10:06 صبح
اینو ببین به دردت میخوره؟

iranrose63
شنبه 17 شهریور 1386, 12:56 عصر
من میخوام که یه عکس تو اسکنر را از طریق برنامم اسکن کنم و تو بانک اطلاعاتی sql
ذخیره کنم


در مورد اسکن یه سر به لینک زیر بزن شاید بدردت بخوره
http://www.codeproject.com/dotnet/wiascriptingdotnet.asp

در مورد ذخیره عکس در db هم می تونی از لینک زیر استفاده کنی
http://barnamenevis.org/forum/showthread.php?t=74432

moji_0282
پنج شنبه 22 شهریور 1386, 11:07 صبح
فکر کنم بدرت بخوره البته من تست نکردم

FManStar
پنج شنبه 12 مهر 1386, 06:41 صبح
این هم لینک pdf آموزش. امیدوارم به درد بخوره

http://fmanstar.tripod.com/programing/saveImToDB.htm

dr_csharp
دوشنبه 14 آبان 1386, 17:35 عصر
دوستان من میخوام Image رو تو SQL بصورت باینری ذخیره کنم بعد دوباره بخونمش و تو فرمم نشونش بدم . ممنون میشم راهنمایی کنید . ممنون میشم که یه راهکارم واسه ذخیره عکس وقتی زیاده بدین . منظور اینکه اصلا ذخیره تو DataBase درسته ؟ چون یه بحث دیگه ای که هست نمیخوام کاربری که داره از سیستم استفاده میکنه به عکسا دسترسی داشته باشه ( اینو گفتم که نگین مسیر عکس تو DB ذخیره کنم و خود عکسارو تو یه فلدر رو Hard )
ممنون :لبخندساده:

programmable
دوشنبه 14 آبان 1386, 17:47 عصر
در پست اول تاپیک زیر یک نمونه کد ذخیره در دیتابیس هست . هر چند این کد مربوط به وب اپلیکشن هست ولی روال ذخیره با ویندوز اپلیکیشن فرقی نمی کنه .

http://barnamenevis.org/forum/showthread.php?t=64042

hassan razavi
دوشنبه 14 آبان 1386, 18:40 عصر
در لینک زیر یک نمونه برنامه بسیار عالی با نامه "ذخیره و بازیابی عکس و چاپ آن " هست که تمام سوالاتون رو جواب میده :

http://barnamenevis.org/forum/showthread.php?t=64210&page=4

dr_csharp
چهارشنبه 16 آبان 1386, 10:42 صبح
سلام این تکه کد من وظیفش اینه که عکس را بصورت باینری تو SQL ذخیره کنه . ولی یه خطا میده :
خطا : string or binary data would be truncated





MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arrImage = ms.GetBuffer();
ms.Close();
SqlConnection con=new SqlConnection("server=(local);trusted_connection=yes;database=pub s;");
string strSQL = "INSERT INTO TBLImage (ID,Name,Picture) VALUES (@ID,@Name,@Picture)";
SqlCommand cmd = new SqlCommand(strSQL, con);
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.Char, 50)).Value = textBox2.Text;
cmd.Parameters.Add(new SqlParameter("@Picture", SqlDbType.Binary)).Value = arrImage;
cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.Char, 50)).Value = textBox3.Text;
con.Open();
cmd.ExecuteNonQuery();
con.Close();

whitehat
چهارشنبه 16 آبان 1386, 11:25 صبح
ببینید لینک زیر کمکی می کنه
http://barnamenevis.org/forum/showthread.php?t=63067

choobin84
چهارشنبه 16 آبان 1386, 11:44 صبح
فکر کنم خطا مال موقعیه که مقادیر ارسالی به بانک با فیلدهای جدول تطابق نداشته باشند.
ببینید شاید مال حروف بزرگ وکوچیک فیلدهای بکار رفته در کد باشه.
در ضمن شما اولین کسی هستی که با این مشکل در برنامه فوق مواجه می شی.
برنامه رو دوباره تست کردم مشکلی نداشت.

seyedmostafa
دوشنبه 21 آبان 1386, 09:24 صبح
در خط نهم برنامه تان باید از نوع varbinary استفاده کنید نه از نوع binary

hassan razavi
چهارشنبه 21 آذر 1386, 10:03 صبح
علی جان کدی رو که در لینک زیر نوشتم برا ذخیره و بازیابی هر نوع فایلی هست. (فایل رو بصورت باینری در بانک میریزه و می خونه) فقط کافیه هنگام بازیابی و ذخیره فایل بر روی هارد ، پسوند مورد نظر رو بهش بدید.
http://barnamenevis.org/forum/showthread.php?t=87164&page=2

alirzn
چهارشنبه 21 آذر 1386, 15:50 عصر
من هدفم اینه که عکس و فیلم رو فقط ادرسشون رو درون database ذخیره کنم. مثلا یک رکورد که مشخصات یک خانه است ممکنه چندین عکس و فیلم داشته باشه؟ حالا چطور میتونم از طریق برنامه این عکس ها و فیلم ها رو با picture viewer ویندوز و windows media player همه رو با هم باز کنم؟
علی جان کدی رو که در لینک زیر نوشتم برا ذخیره و بازیابی هر نوع فایلی هست. (فایل رو بصورت باینری در بانک میریزه و می خونه) فقط کافیه هنگام بازیابی و ذخیره فایل بر روی هارد ، پسوند مورد نظر رو بهش بدید.
http://barnamenevis.org/forum/showthread.php?t=87164&page=2

beh_develop
سه شنبه 04 دی 1386, 23:47 عصر
دوست عزیز براتون یه نمونه برنامه کوچیک جهت Load و Save کردن عکس به SQL Server رو ضمیمه کردم. اول از همه در قسمت Load فرم Connection String رو ست کنین و نام جدولی که می خواین استفاده کنین در Query های این برنامه تنظیم کنین :


13134

ibd_iran
سه شنبه 28 اسفند 1386, 12:28 عصر
در بانک اطلاعاتی یک فیلد از نوع OLE Object درست کردم که عکس در خود دخیره می کند
برای این کار یک متغییر از نو ع Object در C# استفاده کرده ام بعد در موقع خودن این فیلد دچار مشکل هستم

pictureBox1.Image = ds.background

background
متغییر از نوع Object است در این خط error می دهد
برای convert به عکس از چه متدی باید استفاده کرد که این عکس را نمایش بده.
در background خود عکس دخیره است که از بانک خونده می شود

smt_414
سه شنبه 28 اسفند 1386, 14:52 عصر
سلام
اگه درست سوالتون رو متوجه شده باشم
در مورد ذخیره عکس در پایگاه داده معمولا اون رو به بایت تبدیل می کنن و سپس ذخیرش میکنن
نوع فیلد رو Image و یا باینری می گیرن

کد ذخیره کردن

//تبدیل عکس به بایت
if (file_photo_patch != "")
{
Byte[] bytes = File.ReadAllBytes(@file_photo_patch);
objCommand_information.Parameters.Add("@Photo", SqlDbType.Image).Value = bytes;
}
else
{
objCommand_information.Parameters.Add("@Photo", SqlDbType.Image).Value = DBNull.Value;
}

و برای بازیابی اون و نمایش در یک picbox

//نمایش عکس
void show_photo()
{
if (datagridview1.CurrentRow.Cells[13].Value != DBNull.Value )
{
byte[] arrPicture = ((byte[])(this.datagridview1.CurrentRow.Cells[13].Value));
MemoryStream ms = new MemoryStream(arrPicture);
pictureBox1.Image = Image.FromStream(ms);
}
}


امیدوارم جواب سوالتون باشه
البته از امکان جستجو سایت هم بتونید استفاده کنید ، بسیار مفیده

raminsalemi
پنج شنبه 08 فروردین 1387, 14:56 عصر
:چشمک:با سلام دوست عزیز از کد زیر استفاده کن

CurrencyManager cm = (CurrencyManager)BindingContext[dt];
DataRowView drv = (DataRowView)cm.Current;
byte[] content = (byte[])drv["pimage"];
MemoryStream stream = newMemoryStream(content);
Bitmap image = new Bitmap(stream);
pictureBox1.Image = image;

raminsalemi
پنج شنبه 08 فروردین 1387, 15:04 عصر
دوست عزیز برای ذخیره عکس در بانک با ید1-عکس با فرمت Bmpباشه 2- با یه کنترل openfiledialogeعکس روانتخاب کن و کد زیر رو برای ذخیرش بنویس البته این یک مثاله که من برای برنامه خودم نوشتم تو می تونی عوضش کنی:گیج:
if (FullPath != null)
{



SqlConnection con = new SqlConnection("server=localhost;UID=sa;password=;database=picture");
con.Open();

SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = @"insert into TableP values (@pimage)";


cmd.Parameters.Add(@"pimage", SqlDbType.Image, 1000000);
cmd.Prepare();
byte[] imageImageData = null;
byte[] imagebytes = null;
FileStream fs = newFileStream(FullPath, FileMode.Open, FileAccess.Read);
BinaryReader br = newBinaryReader(fs);
imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));
imageImageData = imagebytes;


cmd.Parameters[@"pimage"].Value = imagebytes;
cmd.ExecuteNonQuery();
con.Close();


}

Mrs.Net
جمعه 30 فروردین 1387, 19:04 عصر
چجوری میتونم تو یک کوئری تکستی اینکارو انجام بدم؟

byte[] imgs;
string query=string.format("insert into table1 (id, image) values ({0}, {1})",2,imgs);
اما این خطا میگیره :(

hosseini_87
یک شنبه 19 خرداد 1387, 23:51 عصر
می خوام عکسی رو که از sql server جستجو کردم تو یه picture box نشون بدم. برای اینکار
کد زیر رو می نویسم
buffer1 = (byte[])(objdataset.Tables["tbl_caramuz"].Rows[objcm.Position]["pic"]);
MemoryStream objstream = new MemoryStream(buffer1);
PictureBox objbox =PictureBox1;
objbox.Image = Image.FromStream(objstream);
objbox = null;
objstream.Close();

اما error زیر رو میده

Unable to cast object of type ‘system.DBNull’ to type ‘system.Byte[]’