PDA

View Full Version : قرار دادن دو دیتاست برای دیتاگرید



f_naderi
پنج شنبه 08 اردیبهشت 1390, 05:03 صبح
سلام می خوام اطلاعات دوتا دیتاست رو که دارای فیلد های متفاوتی هستند برای یک دیتاگرید قرار بدم یعنی اگه دیتاست اول 4 ستون داشته باشد و دیتاست دوم 3 ستون ، اول 4 ستون دیتاست اول داخل دیتاگرید قرار بگیره پشت سرش هم 3 ستون دیتاست دوم قرار بگیره (اگه نمی شه این کار رو کرد لطفا یک راه حل دیگه بگید که بتونم اطلاعات دو دیتاست رو داخل گرید کنار هم نشون بدم)

sg.programmer
پنج شنبه 08 اردیبهشت 1390, 09:44 صبح
از join استفاده کن و ستون ها ی که می خواهی را تو Select بیار
Select tbl1.A,tbl1.B,tbl1.C,tbl2.A,tbl2.B,tbl2.C,tbl2.D from tb1,tbl2

f_naderi
پنج شنبه 08 اردیبهشت 1390, 15:52 عصر
ممنون از توجهتون
ولی نمی تونم این کار رو انجام بدم چون من شرط select دوم رو براساس داده های استخراجی select اول می نویسم:

private void Form3_Load(object sender, EventArgs e)
{
ds.Clear();
ds3.Clear();
con.Open();
string str = "select Num_File as ' ',Name as '',Familly as ' ',Date_Ozviat as ' ' from Aaza order by Familly,Name";
da = new OleDbDataAdapter(str,con);
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ds1.Clear();
str = "select Type_Ozviat,Date_First from Ozviat where Num_File=" + ds.Tables[0].Rows[i][0];
da1 = new OleDbDataAdapter(str, con);
da1.Fill(ds1);
da3 = new OleDbDataAdapter(str, con);
da3.Fill(ds3);
newRow = ds3.Tables[0].NewRow();
string[] df=new string[4];
string df1=ds1.Tables[0].Rows[0][1].ToString();
df=df1.Split('/');
string[] df_asli=new string[4];
df_asli[0]=df[0];
df_asli[1]=df[1];
df_asli[2]=df[2];
string Type_Ozviat;
Type_Ozviat=ds1.Tables[0].Rows[0][0].ToString();
for(int j=0;j<(ds1.Tables[0].Rows.Count)-1;j++){
df1=ds1.Tables[0].Rows[j+1][1].ToString();
df=df1.Split('/');
if(Convert.ToInt16(df[0])>Convert.ToInt16(df_asli[0])){
df_asli[0]=df[0];
df_asli[1]=df[1];
df_asli[2]=df[2];
Type_Ozviat=ds1.Tables[0].Rows[j+1][0].ToString();
newRow[0] = Type_Ozviat;
ds3.Tables[0].Rows.Add(newRow);
}
else if (Convert.ToInt16(df[0]) == Convert.ToInt16(df_asli[0])) {
if (Convert.ToInt16(df[1]) > Convert.ToInt16(df_asli[1])) {
df_asli[0] = df[0];
df_asli[1] = df[1];
df_asli[2] = df[2];
Type_Ozviat= ds1.Tables[0].Rows[j + 1][0].ToString();
newRow[0] = Type_Ozviat;
ds3.Tables[0].Rows.Add(newRow);
}
else if (Convert.ToInt16(df[1]) == Convert.ToInt16(df_asli[1])) {
if (Convert.ToInt16(df[2]) > Convert.ToInt16(df_asli[2])) {
df_asli[0] = df[0];
df_asli[1] = df[1];
df_asli[2] = df[2];
Type_Ozviat= ds1.Tables[0].Rows[j + 1][0].ToString();
newRow[0] = Type_Ozviat;
ds3.Tables[0].Rows.Add(newRow);
}
}
}
}

}
dataGridView1.DataSource = ;
con.Close();

}

f_naderi
پنج شنبه 08 اردیبهشت 1390, 23:27 عصر
لطفا به این کد نگاه کنید ببینید چکارش می تونم بکنم خیلی مهمه ممنون

f_naderi
جمعه 09 اردیبهشت 1390, 00:34 صبح
من با این قطعه کد می خوام جدول موجود درون ds3 رو به ds اضافه کنم ولی این اررور رو میده چکارش کنم:


DataTable dt = new DataTable();
dt = ds3.Tables[0];
ds3.Clear();
**ds.Tables.Add(dt);
dataGridView1.DataSource = ds.Tables[0];
con.Close();

از خط ** ایراد میگیره
اررور:
DataTable already belongs to another Dataset