Iman7228
پنج شنبه 15 تیر 1391, 19:51 عصر
سلام دوستان.
من یه برنامه دارم می نویسم که باهاش به مشکل برخوردم..
تو برنامه یه قسمت برای ثبت مشتری داریم و یه قسمت هم برای ثبت سفارشات مربوط به مشتری...
هر مشتری برای خودش یه کد ثابت داره و هر سفارش هم برای خودش کد مشخص و ثابتی داره...
هر جدول هم شاید دارای 10 فیلد باشه ولی من میخوام بعضی از فیلدهای این دو جدول رو تو دیتاگرید نشون بدم که با خطا روبرو میشم.
برای اینکار از تابع load_datebase() استفاده کردم که کدشو نوشتم.
DataSet ds1 = new DataSet();
DataSet ds2 = new DataSet();
SqlCommand scm1 = new SqlCommand();
SqlCommand scm2 = new SqlCommand();
SqlConnection con1 = Form1.objconnection;
private void load_database()
{
try
{
dataGridView1.Rows.Clear();
ds1.Clear();
ds2.Clear();
SqlDataAdapter dal = new SqlDataAdapter(scm1);
dal.Fill(ds1, "TEMP");
for (int i = 0; i < ds1.Tables["TEMP"].Rows.Count; i++)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["name"].Value = ds1.Tables["TEMP"].Rows[i]["name"].ToString();
dataGridView1.Rows[i].Cells["family"].Value = ds1.Tables["TEMP"].Rows[i]["family"].ToString();
dataGridView1.Rows[i].Cells["code"].Value = ds1.Tables["TEMP"].Rows[i]["code"].ToString();
}
dal.SelectCommand = scm2;
dal.Fill(ds2, "TEMP");
for (int i = 0; i < ds2.Tables["TEMP"].Rows.Count; i++)
{
dataGridView1.Rows[i].Cells["deliverydate"].Value = ds2.Tables["TEMP"].Rows[i][0].ToString();
dataGridView1.Rows[i].Cells["orderstatus"].Value = ds2.Tables["TEMP"].Rows[i][1].ToString();
}
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].Cells[0].Value = i + 1;
}
}
catch (SqlException)
{
MessageBox.Show("error");
}
}
اینم کد لود فرم :
private void Form11_Load(object sender, EventArgs e)
{
scm1.Connection = con1;
scm1.CommandText = "select * from moshtari order by code";
scm2.CommandText = "select * from sefareshtbl";
scm2.Connection = con1;
load_database();
}
عکسشم ضمیمه کردم که متوجه منظورم بشید.(البته این تصویر به صورت دستی و نمونه درست شده)
قسمت های مشکی : فیلدهای ارتباط بین دو جدول (relationship)
قسمت های آبی : جدول شماره1
قسمت های قرمز : جدول شماره2
ممنون میشم جواب بدین...
من یه برنامه دارم می نویسم که باهاش به مشکل برخوردم..
تو برنامه یه قسمت برای ثبت مشتری داریم و یه قسمت هم برای ثبت سفارشات مربوط به مشتری...
هر مشتری برای خودش یه کد ثابت داره و هر سفارش هم برای خودش کد مشخص و ثابتی داره...
هر جدول هم شاید دارای 10 فیلد باشه ولی من میخوام بعضی از فیلدهای این دو جدول رو تو دیتاگرید نشون بدم که با خطا روبرو میشم.
برای اینکار از تابع load_datebase() استفاده کردم که کدشو نوشتم.
DataSet ds1 = new DataSet();
DataSet ds2 = new DataSet();
SqlCommand scm1 = new SqlCommand();
SqlCommand scm2 = new SqlCommand();
SqlConnection con1 = Form1.objconnection;
private void load_database()
{
try
{
dataGridView1.Rows.Clear();
ds1.Clear();
ds2.Clear();
SqlDataAdapter dal = new SqlDataAdapter(scm1);
dal.Fill(ds1, "TEMP");
for (int i = 0; i < ds1.Tables["TEMP"].Rows.Count; i++)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["name"].Value = ds1.Tables["TEMP"].Rows[i]["name"].ToString();
dataGridView1.Rows[i].Cells["family"].Value = ds1.Tables["TEMP"].Rows[i]["family"].ToString();
dataGridView1.Rows[i].Cells["code"].Value = ds1.Tables["TEMP"].Rows[i]["code"].ToString();
}
dal.SelectCommand = scm2;
dal.Fill(ds2, "TEMP");
for (int i = 0; i < ds2.Tables["TEMP"].Rows.Count; i++)
{
dataGridView1.Rows[i].Cells["deliverydate"].Value = ds2.Tables["TEMP"].Rows[i][0].ToString();
dataGridView1.Rows[i].Cells["orderstatus"].Value = ds2.Tables["TEMP"].Rows[i][1].ToString();
}
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].Cells[0].Value = i + 1;
}
}
catch (SqlException)
{
MessageBox.Show("error");
}
}
اینم کد لود فرم :
private void Form11_Load(object sender, EventArgs e)
{
scm1.Connection = con1;
scm1.CommandText = "select * from moshtari order by code";
scm2.CommandText = "select * from sefareshtbl";
scm2.Connection = con1;
load_database();
}
عکسشم ضمیمه کردم که متوجه منظورم بشید.(البته این تصویر به صورت دستی و نمونه درست شده)
قسمت های مشکی : فیلدهای ارتباط بین دو جدول (relationship)
قسمت های آبی : جدول شماره1
قسمت های قرمز : جدول شماره2
ممنون میشم جواب بدین...