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

خطا في الdatareader

مغلق
بدأه tarek_13 في 7 أغسطس 2007 · 3 رد · 659 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي تنفيذ هذا الكود

else if (trxDtlDataGridView.Columns[e.ColumnIndex].DataPropertyName == "Qty")
			   {

				   MessageBox.Show("we started");
				   SqlConnection con = new SqlConnection();
				   SqlCommand cmd = new SqlCommand();
				   con.ConnectionString = "Data Source=PC2600;Initial Catalog=OSPalm;Integrated Security=True";
				   con.Open();
				   cmd.CommandText = "select quantity from items where itemno= "+ y;
				   cmd.Connection = con;
				   SqlDataReader rdr = cmd.ExecuteReader();
									 while (rdr.Read())
				   {
					   MessageBox.Show(rdr.GetInt32(0).ToString());
				   // qtydb	= rdr.GetInt32(0);
				   }
				   rdr.Close();
				   con.Close();
				   MessageBox.Show(qtydb.ToString());
			   }

حصل هذا الخطا

when casting frpm a number value must be less than infinity

عند هذه التعليمة

messagebox.show(rdr.getint32(0));

ما هو الخطا برايكم

تم تعديل هذه المشاركة بواسطة Ben_Laiid في 7 أغسطس 2007 في 22:24

#2

السلام عليكم

جرب تعويض الكود بهذه الطريقة

  while (rd.Read())
  {
	MessageBox.Show(String.Format("{0}",rd[0]));
  }
#4

شكرا لك

ولكن ظهرت مشكلة عند تعديل الكود

والكود الجديد هو

while (rdr.Read())
				  {
					  //MessageBox.Show(String.Format("{0}", rdr[0]));
					 // MessageBox.Show(rdr.GetInt32(0).ToString());
					  qtydb = Convert.ToInt32(string.Format("{0}", rdr[0]));
					  enduserpricedb = Convert.ToInt32(string.Format("{0}",rdr[1]));
					  batchnodb = Convert.ToInt32(string.Format("{0}", rdr[2]));
					  barcodedb = Convert.ToInt32(string.Format("{0}", rdr[3]));
					  expirydb = Convert.ToDateTime(string.Format("{0}", rdr[4]));

					  if (Convert.ToInt32(trxDtlDataGridView.Rows[e.RowIndex].Cells[3].Value)>qtydb)
					  {
						  MessageBox.Show("error");
					  }
				  }
				  rdr.Close();
				  con.Close();
				  MessageBox.Show(qtydb.ToString());
				  MessageBox.Show(enduserpricedb.ToString());
				  trxDtlDataGridView.Rows[e.RowIndex].Cells[4].Value = enduserpricedb;
				  trxDtlDataGridView.Rows[e.RowIndex].Cells[6].Value = batchnodb;
				  trxDtlDataGridView.Rows[e.RowIndex].Cells[7].Value = barcodedb;
				  trxDtlDataGridView.Rows[e.RowIndex].Cells[8].Value = expirydb;

			  }

يظهر الexception

عند جلب expirydb

لانها من نوع datetime

فما هو الحل برايك

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

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