PDA

View Full Version : نمایش دو ستون در یک دیتا گرید ویو



mehdikhazaei
دوشنبه 19 تیر 1391, 20:59 عصر
private void btn_sum_class_Click(object sender, EventArgs e)
{
this.con = new SqlConnection(ConnectionString());
SqlDataAdapter da2 = new SqlDataAdapter("select sum(class.cap) as ظرفیت_کلاسهای_8صبح from class where st=8", con);
DataSet ds2 = new DataSet();
da2.Fill(ds2, "class");
dataGridView1_class2.DataSource = ds2.Tables["class"].DefaultView;
con.Close();
this.con = new SqlConnection(ConnectionString());
SqlDataAdapter da = new SqlDataAdapter("select sum(class.cap) as ظرفیت_کلاسهای_10صبح from class where st=10", con);
DataSet ds = new DataSet();
da.Fill(ds, "class");
dataGridView1_class3.DataSource = ds.Tables["class"].DefaultView;
con.Close();


}



این کد مجموع دانشجویانی که ساعت 8صبح کلاس دارند را در یک دیتا گرید ویو و مجموع دانشجویانی که ساعت 10 صبح کلاس دارند را یک دیتا گرید ویو دیگر نمایش می دهد.
چگونه می توانم این دو ستون را در یک دیتاگرید ویو نمایش دهم ؟

نام جدول:class
دارای 4ستون به نام های:
id—cap—st—et
شماره کلاس — تعداد دانشجویان کلاس — ساعت شروع — ساعت پایان

veniz2008
دوشنبه 19 تیر 1391, 23:05 عصر
سلام،سوال خوبی بود، اینم جوابش دوست عزیز:
ابتدا این دو متغیر رو بصورت سراسری تعریف کنید:

int result1;
int result2;
اینم کدهای اصلی برنامه:

DataTable dt = new DataTable();
SqlConnection con = new SqlConnection("Data Source = (local); Initial Catalog =testdb;Integrated Security = True");
SqlCommand cmd1 = new SqlCommand("select sum(id)as 'جمع دانشجویان ساعت 8' from std where time1 = 8", con);
SqlCommand cmd2 = new SqlCommand("select sum(id)as 'جمع دانشجویان ساعت 10' from std where time2 = 10", con);
con.Open();
SqlDataReader reader1 = cmd1.ExecuteReader();
while (reader1.Read())
{
result1 = Convert.ToInt32(reader1[0].ToString());
}
con.Close();
con.Open();
SqlDataReader reader2 = cmd2.ExecuteReader();
while (reader2.Read())
{
result2 = Convert.ToInt32(reader2[0].ToString());
}
con.Close();
dt.Columns.Add(result1.ToString());
dt.Columns.Add(result2.ToString());
dataGridView1.DataSource = dt;
موفق باشید.

mehdikhazaei
سه شنبه 20 تیر 1391, 17:08 عصر
SqlCommand cmd1 = new SqlCommand("select sum(class.cap) from class where st=8", con);
SqlCommand cmd2 = new SqlCommand("select sum(class.cap) from class where st=10", con);
con.Open();
dataGridView1_class2.Columns.Add(cmd1.ExecuteScala r().ToString(), "ظرفیت_کلاسهای_8صبح");
dataGridView1_class2.Columns.Add(cmd2.ExecuteScala r().ToString(), "ظرفیت_کلاسهای_10صبح");
con.Close();
cmd1.Dispose();
cmd2.Dispose();



این کد رو نوشتم ولی به جای دو ستون ، چهار ستون در دیتا گرید ویو نمایش داده می شود که دو ستون متن ساعت 8 و 10 و دو ستون دیگر اعداد ظرفیت کلاس های 8 و 10 صبح.

کدوم قسمت رو اشتباه کردم؟

mehdikhazaei
چهارشنبه 21 تیر 1391, 22:07 عصر
چرا به جای دو ستون ، چهار ستون نمایش داده می شود؟ لطفا راهنمایی کنید .

mehdikhazaei
چهارشنبه 21 تیر 1391, 23:41 عصر
private void btn_sum_class_Click(object sender, EventArgs e)


DataTable dt = new DataTable();
SqlConnection con = new SqlConnection("Data Source = studio;Initial Catalog=Uni_shomal;Integrated Security = True");
SqlCommand cmd1 = new SqlCommand("select sum(class.cap) from class where st = 8", con);
SqlCommand cmd2 = new SqlCommand("select sum(class.cap) from class where st = 10", con);
con.Open();
SqlDataReader reader1 = cmd1.ExecuteReader();
while (reader1.Read())
{
result1 = Convert.ToInt32(reader1[0].ToString());
}
con.Close();
con.Open();
SqlDataReader reader2 = cmd2.ExecuteReader();
while (reader2.Read())
{
result2 = Convert.ToInt32(reader2[0].ToString());
}
con.Close();
con.Open();
dataGridView1_class2.Columns.Add(cmd1.ExecuteScala r().ToString(), "ظرفیت_کلاسهای_8صبح");
dataGridView1_class2.Columns.Add(cmd2.ExecuteScala r().ToString(), "ظرفیت_کلاسهای_10صبح");
dt.Columns.Add(result1.ToString());
dt.Columns.Add(result2.ToString());
dataGridView1_class2.DataSource = dt;
cmd1.Dispose();
cmd2.Dispose();

con.Close();

mehdikhazaei
چهارشنبه 21 تیر 1391, 23:56 عصر
توی این تکه کد که فقط دو ستون ایجاد میشه. باید ببینید کجا ستون های دیگه اضافه میشه. یا اینکه کد کامل این قسمت رو بزارید

باید کاری کنیم که مجموع دانشجویان کلاسهای هشت صبح در ستون اول و مجموع دانشجویان کلاسهای ده صبح در ستون دوم قرار بگیرند.

mehdikhazaei
پنج شنبه 22 تیر 1391, 10:21 صبح
الآن دو ستون به درستی نمایش داده می شود ولی مقادیر تعداد دانشجویان هر کلاس در ستون مربوط قرار نمی گیرند و فیلد ستونها خالی است.

لطفاا راهنمایی کنید.

Mahmoud.Afrad
پنج شنبه 22 تیر 1391, 10:39 صبح
private void btn_sum_class_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source = studio;Initial Catalog=Uni_shomal;Integrated Security = True");
SqlCommand cmd1 = new SqlCommand("select sum(class.cap) from class where st = 8", con);
SqlCommand cmd2 = new SqlCommand("select sum(class.cap) from class where st = 10", con);
con.Open();
dataGridView1_class2.Columns.Add("Zarfiat_8", "ظرفیت_کلاسهای_8صبح");
dataGridView1_class2.Columns.Add("Zarfiat_10", "ظرفیت_کلاسهای_10صبح");
dataGridView1_class2.Rows.Add(cmd1.ExecuteScalar() , cmd2.ExecuteScalar());
con.Close();
con.Dispose();
cmd1.Dispose();
cmd2.Dispose();
}