Nima_kyan
چهارشنبه 29 شهریور 1391, 01:22 صبح
سلام دوستان
در فرم زیر بعد از زدن دکمه ادامه باید نمراتی که قبلا برای کارنامه درسی داوطلب ثبت شده در گرید لود بشن.
93070
واسه این کار کد زیر رو نوشتم. (در بانکم یه فیلد به نام نمره دارم ولی در گرید میخوام قسمت صحیح و اعشار نمره رو تو دو ستون مجزا نمایش بدم)
SqlConnection conn = new SqlConnection(FrmMain.strcon);
SqlCommand cmdd = new SqlCommand();
cmdd.Connection = conn;
cmdd.CommandText = "select Tbl_Karname_Darsi.ID_Dars,Name_Dars,Nomre from Tbl_Karname_Darsi inner join Tbl_Dars on Tbl_Karname_Darsi.ID_Dars=Tbl_Dars.ID_Dars where ID_STD=" + int.Parse(txtIDSTD.Text) + " and Azmoon_Year=" + Properties.Settings.Default.Azmoon_Year + " and ID_Azmoon=" + int.Parse(comboBox1.SelectedValue.ToString());
conn.Open();
cmdd.ExecuteNonQuery();
conn.Close();
SqlDataAdapter daa = new SqlDataAdapter(cmdd);
DataTable dtt = new DataTable();
dtt.Clear();
daa.Fill(dtt);
dataGridView1.DataSource = dtt;
dataGridView1.Columns["Nomre"].Visible = false;
DataGridViewTextBoxColumn grdtxt1 = new DataGridViewTextBoxColumn();
grdtxt1.Name = "Nomre_Ashar";
dataGridView1.Columns.Add(grdtxt1);
grdtxt1.HeaderText = "اعشار";
DataGridViewTextBoxColumn grdtxt2 = new DataGridViewTextBoxColumn();
grdtxt2.Name = "Nomre_Sahih";
dataGridView1.Columns.Add(grdtxt2);
grdtxt2.HeaderText = "صحیح";
int count = dtt.Rows.Count;
string str_Nomre_Sahih="", str_Nomre_Ashar = "";
for (int i = 0; i < count; i++)
{
string s = dtt.Rows[i]["Nomre"].ToString();
int x = s.IndexOf(".", 0, s.Length - 1);
str_Nomre_Sahih = s.Substring(0,x);
str_Nomre_Ashar = s.Substring(x+1,s.Length-x-1);
dataGridView1.Rows[i].Cells["Nomre_Sahih"].Value = str_Nomre_Sahih;
dataGridView1.Rows[i].Cells["Nomre_Ashar"].Value = str_Nomre_Ashar;
}
حالا مشکل اینه که بار اول که دکمه ادامه رو میزنم گریدم پر میشه ولی دو ستون نمره اعشار و نمره صحیح خالی میمونه. جالبش اینه که یه بار که دکمه انصراف رو میزنم و دوباره دکمه ادامه رو میزنم اون دوتا ستون هم پر میشن. چرااااا اینجوری؟؟؟ کلی باهاش ور رفتم ولی هیچ
در فرم زیر بعد از زدن دکمه ادامه باید نمراتی که قبلا برای کارنامه درسی داوطلب ثبت شده در گرید لود بشن.
93070
واسه این کار کد زیر رو نوشتم. (در بانکم یه فیلد به نام نمره دارم ولی در گرید میخوام قسمت صحیح و اعشار نمره رو تو دو ستون مجزا نمایش بدم)
SqlConnection conn = new SqlConnection(FrmMain.strcon);
SqlCommand cmdd = new SqlCommand();
cmdd.Connection = conn;
cmdd.CommandText = "select Tbl_Karname_Darsi.ID_Dars,Name_Dars,Nomre from Tbl_Karname_Darsi inner join Tbl_Dars on Tbl_Karname_Darsi.ID_Dars=Tbl_Dars.ID_Dars where ID_STD=" + int.Parse(txtIDSTD.Text) + " and Azmoon_Year=" + Properties.Settings.Default.Azmoon_Year + " and ID_Azmoon=" + int.Parse(comboBox1.SelectedValue.ToString());
conn.Open();
cmdd.ExecuteNonQuery();
conn.Close();
SqlDataAdapter daa = new SqlDataAdapter(cmdd);
DataTable dtt = new DataTable();
dtt.Clear();
daa.Fill(dtt);
dataGridView1.DataSource = dtt;
dataGridView1.Columns["Nomre"].Visible = false;
DataGridViewTextBoxColumn grdtxt1 = new DataGridViewTextBoxColumn();
grdtxt1.Name = "Nomre_Ashar";
dataGridView1.Columns.Add(grdtxt1);
grdtxt1.HeaderText = "اعشار";
DataGridViewTextBoxColumn grdtxt2 = new DataGridViewTextBoxColumn();
grdtxt2.Name = "Nomre_Sahih";
dataGridView1.Columns.Add(grdtxt2);
grdtxt2.HeaderText = "صحیح";
int count = dtt.Rows.Count;
string str_Nomre_Sahih="", str_Nomre_Ashar = "";
for (int i = 0; i < count; i++)
{
string s = dtt.Rows[i]["Nomre"].ToString();
int x = s.IndexOf(".", 0, s.Length - 1);
str_Nomre_Sahih = s.Substring(0,x);
str_Nomre_Ashar = s.Substring(x+1,s.Length-x-1);
dataGridView1.Rows[i].Cells["Nomre_Sahih"].Value = str_Nomre_Sahih;
dataGridView1.Rows[i].Cells["Nomre_Ashar"].Value = str_Nomre_Ashar;
}
حالا مشکل اینه که بار اول که دکمه ادامه رو میزنم گریدم پر میشه ولی دو ستون نمره اعشار و نمره صحیح خالی میمونه. جالبش اینه که یه بار که دکمه انصراف رو میزنم و دوباره دکمه ادامه رو میزنم اون دوتا ستون هم پر میشن. چرااااا اینجوری؟؟؟ کلی باهاش ور رفتم ولی هیچ