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

اريد حل !مشكلة بين Datagridview و بين ال Sql

مغلق
بدأه BOGY في 23 يناير 2008 · 4 رد · 959 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

في الكود الموضح في الاسفل عبارة عن

For Loop

وجملة ادخال في السيكوال سيرفر في جدول اسمه

ReceivablesDetails

  for (int i = 0; i <= DGVReceivables.RowCount - 1; i++) 
			 {
				 string sqlGrid = "INSERT INTO ReceivablesDetails(ReceivablesID, Payments, AccountName, Notes)" + " ";
				 int receivblesID = int.Parse(txtID.Text);
				 double payment =double.Parse(DGVReceivables[0, i].Value.ToString());
				 string AccountName =DGVReceivables[1, i].Value.ToString();
				 string Notes =DGVReceivables[2, i].Value.ToString();
				 sqlGrid += " VALUES ("+int.Parse(txtID.Text)+", N'"+payment+"', N'"+AccountName+"', N'"+Notes+"')";



				 SqlCommand xx = new SqlCommand(sqlGrid, con);

				 con.Open();
				 xx.ExecuteNonQuery();
				 con.Close();
				 receivblesID = 0;
				 payment = 0;
				 AccountName = null;
				 Notes = null;
			 }

المشكله معاي في الآتي :

البرنامج بيقوم باضافه كل سطر في الداتاجريد ففيو في الداتابيز بس المشكله في آخر سطر بيطلعلي ايرور في السطر

 string Notes =DGVReceivables[2, i].Value.ToString();

رغم وجود قيمة فيه

و الايرور هو :

Object reference not set to an instance of an object.

System.Collections.ListDictionaryInternal

انا مش فاهم الايرور و دورت عليه في الانترنت و مش لاقي حل فادني

فا ياريت تفيدوني أعمل ايه

لو في اي استفسارات بخصوص السؤال لو كان ناقص ياريت تبلغوني

IT'S EASY, IF YOU TRY

#2

السلام عليكم ورحمه الله وبركاته

غير ال

for (int i = 0; i <= DGVReceivables.RowCount - 1; i++)

الي

for (int i = 0; i <= DGVReceivables.RowCount - 2; i++)

أو الي

for (int i = 0; i < DGVReceivables.RowCount - 1; i++)

ياريت تكون فاهم انا عملت ايه:

في الكود الاول استبدلت ال 1 ب 2 لان انت لو عملت datagridview و اضافت فيها 5 row يكون DataGridView.Count=6 عشان كده بنقص 2 مش 1 عشان يكون i من 0 الي 4

طبعا الكود التاني نفس الفكرة

اتمني ان الحل ده يساعك

نصيحة: لما يقبلك Error بالشكل ده اعمل Debug

#3

السلام عليكم

المشكلة مش في عدد ال الصفوف في الداتاجريد فيو

المشكلة انوا بيقبل القيمتين

 double payment =double.Parse(DGVReceivables[0, i].Value.ToString());
				  string AccountName =DGVReceivables[1, i].Value.ToString();

وبيتحفظوا في الجدول

انما

string Notes =DGVReceivables[2, i].Value.ToString();

في آخر صف مبيدخلش القيمة الخاصه بال Notes

و بيدخل ال

Payment & AccountName

رغم ان نوع notes في الداتابيز عملته ntext وبدل ما هوه بيقبل القيمة في الصف الي قبليه معنى كده ان النوع ntext مفيش فيه مشكله

و الغريب اني لما بدخل رو واحد بيدخل بدون مشاكل و لو 2 رو برضه مفيش مشاكل انما لو زودت عن كده برو واحد بيطلع بفس الايرور

وذلك عند استخدام

for (int i = 0; i <= DGVReceivables.RowCount - 2; i++)

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

تم تعديل هذه المشاركة بواسطة BOGY في 24 يناير 2008 في 12:06

IT'S EASY, IF YOU TRY

#5

استخدمت يا جمعه الامر goto و تطلعني بره اللوب


{
goto aa;
}

string sqlGrid = "INSERT INTO ReceivablesDetails(ReceivablesID, Payments, AccountName, Notes)" + " ";
int receivblesID = int.Parse(txtID.Text);
double payment = double.Parse(DGVReceivables[0, i].Value.ToString());
string AccountName = DGVReceivables[1, i].Value.ToString();
string Notes = DGVReceivables[2, i].Value.ToString();
sqlGrid += " VALUES (" + int.Parse(txtID.Text) + ", N'" + payment + "', N'" + AccountName + "', N'" + Notes + "')";

SqlCommand xx = new SqlCommand(sqlGrid, con);
xx.ExecuteNonQuery();

receivblesID = 0;
payment = 0;
AccountName = null;
Notes = null;

}
aa:
Refresh();
this.Text += "Save Done";
con.Close();
 if (DGVReceivables[0, i].Value == null)

IT'S EASY, IF YOU TRY

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…