السلام عليكم ورحمة الله
اريد ان احفظ صورة فى sql
عندى جدول اصناف واريد ان اضيف صورة للصنف
1 - ما هو نوع الحقل فى الـ sql
2 - ما هو كود الاضافة ( insert )
السلام عليكم ورحمة الله
اريد ان احفظ صورة فى sql
عندى جدول اصناف واريد ان اضيف صورة للصنف
1 - ما هو نوع الحقل فى الـ sql
2 - ما هو كود الاضافة ( insert )


وعليكم السلام ورحمة الله وبركاته
نوع الحقل في sql server هو image
اضف مجال الاسماء using System.IO;
وهذا كود الاضافة لقاعدة البيانات
private bool SaveImage()
{
int success = 0;
try
{
byte[] data = null;
FileInfo fInfo = new FileInfo(openFileDialog1.FileName);
long numBytes = fInfo.Length;
FileStream fStream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fStream);
data = br.ReadBytes((int)numBytes);
SqlConnection CN = new SqlConnection(@"connection string");
string qry = "insert into ImageStore (TheImage)values(@TheImage)";
SqlCommand SqlCom = new SqlCommand(qry, CN);
SqlCom.Parameters.AddWithValue("@TheImage",(object)data);
CN.Open();
success = SqlCom.ExecuteNonQuery();
CN.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return success > 0;
}صورة توضيحية للمطلوب فى المرفقات
ياريت الكود يضم الادوات الموجوده ( textBox1 وtextBox2 و textBox3 و pictureBox1 )


السلام عليكم ورحمة الله ووبركاته
يوجد طريقتين لتخزين صورة فى الداتا بيز
الطريقة الأولى: انا بأخذ الصورة أحطها ع السيرفر وباخد path بتاع الصورة احطه فى الداتا بيز
دا له ميزة و عيب
الميزة :ان انت هنا بتقللل فى حجم الداتا بيز يقتصر التخزين فقط على ال path لدى الصورة
العيب: من الممكن ان يتم حذف الصورة من على السيرفر بأى شكل من الأشكال زى مثلا تم تغير اسم الصورة
أو فيروس أدى الى حذف الصورة أ, ...الخ
ملاحظة : تعريف البرامتر داخل الداتا بيز (ال هنحجز بيه ) ممكن نعرفه مثلاnvarchar(max)
string con_str = "Connection_string";
SqlConnection con = new SqlConnection(con_str );
con.Open();
SqlCommand scm = new SqlCommand();
scm.Connection = con;
scm.CommandType = CommandType.Text; //default
//name_of_table دا أسم الجدول ال موجود فى الداتا بيز
//Save_Path دا ال البرامتر ال متسجل ومحجوز داخل الجدول
scm.CommandText = "insert into " + name_of_table + " ("+Save_Path+") values (@name_of_pic) ";
//label1 .Text دا بياخد الباص لدى الصورة عندا فتحها من خلال OpenFileDialog
scm.Parameters.AddWithValue("@name_of_pic",label1 .Text );
scm.ExecuteNonQuery();الطريقة الثانية : انا بأخذ الصورة كاملة وأضعها داخل الداتا بيز يتم تقطيعها الى مجموعة من البيكسل
(معلومة :قيمة اى بيكسل فى الصورة بتتراوح قيمته من 0 الى 255 .. 0 يدل على لون أبيض و 255 يدل على اللون الأسود
ومن ال 0 الى 255 تتراوح كل الألوان المعروفة )
ونضعها فى array of Bit
ودا له ميزة وعيب
الميزة : ان الصورة لا يتم اتلافها وأيضا تكون أمنة تماما ك بوالص التأمين وشهادات الأستثمار
العيب : حجم الداتا بيز بيزيد حسب حجم الصور
ادخال ارقام فقط فى TextBox
http://consoledotread.blogspot.com/2014/03/allow-textbox-accept-only-number-c.html
--
مثال بسيط للبحث داخل الداتا بيز واسترجاع النتائج داخل textboxs
--
سبحان الله وبحمده***سبحان الله العظيم
شكرا جزيلا للتفاعل
انا ححاول فى هذه الاكواد
تم إرفاق لك مثال لكى تضيف به الاكواد للتبسيط ويكون مثال لكل من يبحث فى هذا الموضوع
ولكم جزيل الشكر

