الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أريد كود يقوم بتخزين صوره في قاعدة اوراكل وجلبها

بدأه qaher في 3 يوليو 2007 · 4 رد · 2,139 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

طبعا لي كم يوم اعمل بحث الموضوع وحصلت اكواد كثيره ماقصروا الشباب فيها

خاصة اللي تقوم بفحص حجم الملف ونوعه

لكن لم أجد كود يقوم بالتالي وهو مهم جدا لمستخدمي (دوت نت+اوراكل):

1- أريد كود دوت نت يقوم بتخزين صوره بقاعدة بيانات أوراكل

2- وكود يقوم بجلب الصوره مباشرة من قاعدة البيانات من دون (استخدام الداتا سيت)

ووضعها داخل PictureBox (((((((وهو الأهم من الأول)))))))))

طبعا انا عملت برنامج مصغر ونريد نكمله سوى وهو مرفق

طبعا البرنامج مقتبس من المنتدى وقمت بتعديله شوي

وتقبلوا التحيات

PicTest.zip

#2
/index.ph...982&hl=صورة

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#3

يا أخي شكرا لك

لكن الرابط اللي انت حطيته مافيه جواب لسؤالي

يا ريت تقرا الطلبين مره ثانية وانا اخوك وتركز على كلمة (((((((((((((((((قاعدة بيانات))))))))))))))

وليس (((((((فولدر خارجي))))))))

تحياتي لك

منتظر ردكم

#4

لا إجابة؟

#5

اريد ان اخبرك ياأخى طالما تتعامل مع أوراكل فمن الأفضل لا بل لابد :P أن تستعمل المزود ODP بدلا من oledb او غيره من ميكروسوفت

فهو يعطيك مرونه اكبر بكثير من مزودات ميكروسوفت واداء افضل .

عموما هذا ما استخدمه لجلب الصوره مباشرة وعرضها فى الـ PicturBox

			
OracleConnection cn = new OracleConnection(cn_string);
OracleCommand cmd = new OracleCommand();
			cmd.CommandText = "select c_file from photos where photoname='" + this.txt_name.Text + "'";
			cmd.Connection = cn;
			cn.Open();
			OracleDataReader rdr = cmd.ExecuteReader();
			if (rdr.Read())
			{
				this.pictureBox1.Image = Image.FromStream(new MemoryStream(rdr.GetOracleBlob(rdr.GetOrdinal("c_file")).Value));
			}
			cn.Close();

مع ملاحظة أن الـ c_file هو الحقل الذى يحتوى على بيانات الصوره الثنائيه

هناك طرق أخرى ولكن هذه اسهلها واسرعها

اما لرفع الصوره فاننا نقوم بالأتى

//تحويل الصوره الى بيانات ثنائيه ووضعها فى مصفوفه
Byte[] cont = File.ReadAllBytes(this.OF_Dilaog.FileName);

string sqlinsert = "insert into table_name (c_file) values(:1)";
OracleCommand cmd = new OracleCommand(sqlinsert, cn);

//عمل باراميتير واسناد القيم اليه .. هناك قيم اخري ولكن اهمها size, value
				OracleParameter file_para = new OracleParameter(":1", OracleDbType.Blob);
				file_para.Size = cont.Length;
				file_para.Value = cont;
				cmd.Parameters.Add(file_para);

				cmd.Connection.Open();
				cmd.ExecuteNonQuery();
				cmd.Connection.Close();
				cmd.Dispose();

ان خفت أن تفشل ... فلا تقل شئ .. ولا تفعل شئ .. وكن لاشئ

مواضيع مشابهة