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

ما سبب هذا الخطأ "أرجو الدخول"

مغلق
بدأه sakr-el-hack في 26 يونيو 2007 · 2 رد · 437 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

الخطأ بهذا الكود بالتحديد

x = dr[0].ToString();

وهذا هو الكود بالكامل

string query = "select count from code where code = '"+TextBox1.Text+"'";
		SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbcon"].ConnectionString);
		SqlCommand cmd = new SqlCommand(query, con);
		SqlDataReader dr;
		con.Open();
		dr= cmd.ExecuteReader();
		GridView1.DataSource = dr;
		GridView1.DataBind();
		if (dr.HasRows)
		{
			while (dr.Read())
			{
				string x ="";
				int y =0;
				x = dr[0].ToString();
				y = Convert.ToInt16(x);
				if( y > 10)
				{
					Label2.Text = "لقد تخطيت الحد المسموج به";
				}

			}
		}
		else
		{
			Label2.Text = "كود خطأ";
		}
		con.Close();
#2

والله العالم أنه عندك خطأ فمثلا لا يوجد جدول اسمه code أو أن اسم الحقل خطأ لأن الكود صحيح(وجهة نظر)

ولكن هنالك ملاحظة عليك من أجل الأداء

يا شباب ليش بتستعملو DataReader

هادا العنصر ما بيشتغل إلا واتصال قاعدة اليبانات مفتوح بينما بالامكان بسهولة استخدام ما يدعى Dataset

يعني رح اكتب المثال السابق باستخدام (Offline Data)واللي هيي Dataset كالتالي:

string query = "select count from code where code = '" + TextBox1.Text + "'";
		SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbcon"].ConnectionString);
		//SqlCommand cmd = new SqlCommand(query, con);
		SqlDataAdapter da = new SqlDataAdapter(query, con);
		//SqlDataReader dr;
		DataSet ds = new DataSet();
		con.Open();
		//dr = cmd.ExecuteReader();
		da.Fill(ds);
		con.Close();
		//GridView1.DataSource = dr;
		GridView1.DataSource = ds;
		GridView1.DataBind();
		//if (dr.HasRows)
		if (ds.Tables.Count > 0)
		{
			if (ds.Tables[0].Rows.Count > 0)
			{
				for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
				{
					string x = "";
					int y = 0;
					x = ds.Tables[0].Rows[0].ItemArray[0].ToString();
					y = Convert.ToInt16(x);
					if (y > 10)
					{
						Label2.Text = "لقد تخطيت الحد المسموج به";
					}
				}
			}
			else
			{
				//There is no data
			}
			/*while (dr.Read())
			{
				string x = "";
				int y = 0;
				x = dr[0].ToString();
				y = Convert.ToInt16(x);
				if (y > 10)
				{
					Label2.Text = "لقد تخطيت الحد المسموج به";
				}

			}*/
		}
		else
		{
			Label2.Text = "كود خطأ";
		}
	}

لم أقم بحذف كودك ولكني استبدلت بعضا من أجزائه

اذا في اشكالية بالموضوع قلي

تم تعديل هذه المشاركة بواسطة Arwany في 26 يونيو 2007 في 07:57

#3

هلا أخوى Arwany

فعلا الأداه dataset قويه جدا

ويكفى انها تحفظ اكثر من جدول ويمكن استخدامها بعد إنهاء الإتصال

ولكنى كنت استخدم datareader لأنها أسرع ولكن كما قلت يعيبها ان الإتصال لابد أن يكون مفتوح

عموما ما تزعل انا استخدمت dataset لإنه ما ظبط معى الكود إلا ب DataSet

ولا أعرف حتى الإن ما هى المشكله فى كود ال datareader

عموما أخى Arwany تم إستبدال الكود والمشكله انتهت والحمد لله

شكرا ليك يالغلا

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

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