rezvan.j
چهارشنبه 02 تیر 1389, 12:36 عصر
سلام دوستان گرامی
چند تا سوال دارم که لطف می کنید اگه کمک کنید .
برنامه ای با As.Net می نویسم
می خواهم بین 4 تا جدول ارتباط برقرار کنم که هر کدوم کلید اصلی و خارجی رو دارند . بهتره با DataRelation بنویسم یا از StoredProcdeure هم میشه استفاده کرد ؟
با DataRelation بین جداولم ارتباط برقرار کردم ولی نمی تونم از مقادیرش استفاده کنم و خطا داره .
join رو میشه در VS استفاده کرد ؟ یعنی در #C میشه نوشت دو تا جدول رو Join کن ؟ پس اینجوری دیگه اون DataRelation چی هست ؟
کدهایی که نوشتم :
فعلا توی Label خواستم بیارمشون بعد باید به GridView بفرستمشون این فقط ارتباطش هست که هنوز خطا داره .
SqlCommand cmd = new SqlCommand("select lesson,idless from lesson ", connect);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
//پر کردن دیتاست با جدول درس
adapter.Fill(ds, "lesson");
//پر کردن دیتاست با جدول درس/معلم
SqlCommand cmdEmpLess = new SqlCommand("select idless,idempless from empless ", connect);
adapter.Fill(ds,"empless");
//پر کردن دیتاست با جدول نمرات
SqlCommand cmdMark = new SqlCommand("select mark,idempless from mark ", connect);
adapter.Fill(ds ,"mark");
}
catch
{
}
//ایجاد ارتباط فیلد کد دانش آموزی در جداول دانش آموز و نمره
// DataRelation relstd = new DataRelation ("relstd",ds.Tables["student"].Columns["idstd"],ds.Tables["mark"].Columns["idstd"]);
//ایجاد ارتباط فیلد درس در جداول درس و درس/معلم
DataRelation relation = new DataRelation("relation" , ds.Tables["lesson"].Columns["idless"], ds.Tables["empless"].Columns["idless"]);
//ایجاد ارتباط فیلد درس/معلم در جداول درس/معلم و نمره
ds.Relations.Add(relation);
DataRelation relationMarkEmpless = new DataRelation("relationMarkEmpless", ds.Tables["empless"].Columns["idempless"], ds.Tables["mark"].Columns["idempless"], false);
// ds.Relations.Add(relstd);
ds.Relations.Add(relationMarkEmpless);
// foreach (DataRow rowstd in ds.Tables["student"].Rows)
// {
foreach (DataRow rowless in ds.Tables["lesson"].Rows)
{
Label1.Text = Label1.Text + "<br />" + rowless["lesson"];
Label1.Text = Label1.Text + "<br />" + rowless["mark"];
// Label1.Text = Label1.Text + "<br />" + rowless["student"];
foreach (DataRow rowEmpLess in rowless.GetChildRows(relation))
{
foreach (DataRow rowMark in rowEmpLess.GetParentRows(relationMarkEmpless))
{
Label1.Text = Label1.Text + " ";
Label1.Text = Label1.Text + rowMark["mark"] + "<br />";
}
}
}
}
// }
و این خطا رو هم میده :
'column' argumant cannot be null
Parameter name:column
از خطی که Bold کردمش خطا میگیره .
چند تا سوال دارم که لطف می کنید اگه کمک کنید .
برنامه ای با As.Net می نویسم
می خواهم بین 4 تا جدول ارتباط برقرار کنم که هر کدوم کلید اصلی و خارجی رو دارند . بهتره با DataRelation بنویسم یا از StoredProcdeure هم میشه استفاده کرد ؟
با DataRelation بین جداولم ارتباط برقرار کردم ولی نمی تونم از مقادیرش استفاده کنم و خطا داره .
join رو میشه در VS استفاده کرد ؟ یعنی در #C میشه نوشت دو تا جدول رو Join کن ؟ پس اینجوری دیگه اون DataRelation چی هست ؟
کدهایی که نوشتم :
فعلا توی Label خواستم بیارمشون بعد باید به GridView بفرستمشون این فقط ارتباطش هست که هنوز خطا داره .
SqlCommand cmd = new SqlCommand("select lesson,idless from lesson ", connect);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
//پر کردن دیتاست با جدول درس
adapter.Fill(ds, "lesson");
//پر کردن دیتاست با جدول درس/معلم
SqlCommand cmdEmpLess = new SqlCommand("select idless,idempless from empless ", connect);
adapter.Fill(ds,"empless");
//پر کردن دیتاست با جدول نمرات
SqlCommand cmdMark = new SqlCommand("select mark,idempless from mark ", connect);
adapter.Fill(ds ,"mark");
}
catch
{
}
//ایجاد ارتباط فیلد کد دانش آموزی در جداول دانش آموز و نمره
// DataRelation relstd = new DataRelation ("relstd",ds.Tables["student"].Columns["idstd"],ds.Tables["mark"].Columns["idstd"]);
//ایجاد ارتباط فیلد درس در جداول درس و درس/معلم
DataRelation relation = new DataRelation("relation" , ds.Tables["lesson"].Columns["idless"], ds.Tables["empless"].Columns["idless"]);
//ایجاد ارتباط فیلد درس/معلم در جداول درس/معلم و نمره
ds.Relations.Add(relation);
DataRelation relationMarkEmpless = new DataRelation("relationMarkEmpless", ds.Tables["empless"].Columns["idempless"], ds.Tables["mark"].Columns["idempless"], false);
// ds.Relations.Add(relstd);
ds.Relations.Add(relationMarkEmpless);
// foreach (DataRow rowstd in ds.Tables["student"].Rows)
// {
foreach (DataRow rowless in ds.Tables["lesson"].Rows)
{
Label1.Text = Label1.Text + "<br />" + rowless["lesson"];
Label1.Text = Label1.Text + "<br />" + rowless["mark"];
// Label1.Text = Label1.Text + "<br />" + rowless["student"];
foreach (DataRow rowEmpLess in rowless.GetChildRows(relation))
{
foreach (DataRow rowMark in rowEmpLess.GetParentRows(relationMarkEmpless))
{
Label1.Text = Label1.Text + " ";
Label1.Text = Label1.Text + rowMark["mark"] + "<br />";
}
}
}
}
// }
و این خطا رو هم میده :
'column' argumant cannot be null
Parameter name:column
از خطی که Bold کردمش خطا میگیره .