PDA

View Full Version : سوال: مشکل عجیب در کار با DataTable



veniz2008
جمعه 14 بهمن 1390, 15:48 عصر
سلام دوستان،برای انتخاب واحد دانشجو، در ابتدا چک میکنم که آیا تعداد واحد درس جاری(درسی که کاربر انتخاب میکنه) با تعداد واحد درس هایی که از قبل گرفته بیشتر از 20 واحد میشه یا نه،اگر نشد اجازه گرفتن درس بهش داده میشه در غیراینصورت نمیتونه درس رو بگیره،حالا من یک دانشجو دارم که تا الان هیچ درسی رو نگرفته و داخل جدول اخذ هم قاعدتا وجود نداره(چون درسی رو نگرفته)،من از کد زیر برای محاسبه تعداد واحدهایی که از قبل گرفته استفاده میکنم،در کمال تعجب میبینم datatable من تعدادش برابر با 1 میشه(count =1)(مطمئنم که این دانشجو داخل جدول اخذ قرار نداره)،حالا مشکلم اینه که وقتی دانشجو اولین درسش رو میخواد بگیره خطای زیر رخ میده،ولی اگر خودم بصورت دستی درون جدول اخذ یک درس واسش تعریف کنم،برای انتخاب درس های بعدی مشکلی پیش نمیاد و برنامه به درستی کار میکنه،من کدهایی رو که استفاده میکنم به همراه تصویری از خطا میذارم،امیدوارم دوستان عیب کارم رو بهم بگن،مرسی.
کدهایی که استفاده میکنم:

int unit = int.Parse(GridView1.Rows[e.NewSelectedIndex].Cells[9].Text);
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection("Data Source = (local);Initial Catalog=US_DB;Integrated Security=True");
SqlDataAdapter Adapter = new SqlDataAdapter("select sum(Unit) from Akhz where UserName ='" + Label1.Text + "'and YearDars=" + YearJari + "and TermDars=" + termjari, conn);
DataTable table = new DataTable();
Adapter.Fill(table);
if(table.Rows.Count == 0)
{
sumunit = 0;
if ((unit + sumunit) > 20)
{
Label8.ForeColor = System.Drawing.Color.Red;
Label8.Text = "شما در يک ترم مجاز به گرفتن بيش از 20 واحد نيستيد";
return;
}
}
if(table.Rows.Count > 0)
{
sumunit = int.Parse(table.Rows[0][0].ToString());
if ((unit + sumunit) > 20)
{
Label8.ForeColor = System.Drawing.Color.Red;
Label8.Text = "شما در يک ترم مجاز به گرفتن بيش از 20 واحد نيستيد";
return;
}
}
تصویری از خطای تولید شده:
81968

fakhravari
جمعه 14 بهمن 1390, 20:05 عصر
با سلام
توی عکس خطا هم {0} 2 می باید اسم فیلد بدین
یه نمونه کد گزاشتم برسی کنید