PDA

View Full Version : سوال: خروچی روی گریدویو از دو جدول با یک فیلد مشترک



asp2.net
دوشنبه 18 خرداد 1394, 14:58 عصر
با سلام و خسته نباشی من دوتا جدول دارم به اسم t1 , t2
در جدول t1 سه تا فیلد به اسم id , name ,fname که id یونیک هست
در جدول t2 سه تا فیلد به اسم id , x2,x3

حالا میخواهم در گرید ویو چهار ستون داشته باشم به ترتیب id , name ,fname و ستون چهارم و پنجم یک گریدویو دیگری باشد که متانظر با id مربوطه جدول t2 فیلد های x1 , x2 را نشون بده.. مانند نمونه

132056

asp2.net
سه شنبه 19 خرداد 1394, 07:24 صبح
سلام کسی نتونست کمک کنه؟؟؟؟؟؟؟/

nahidmoh
سه شنبه 19 خرداد 1394, 08:23 صبح
سلام الان کد t-sql رو می خوای ؟؟؟

asp2.net
سه شنبه 19 خرداد 1394, 08:29 صبح
یاسلام خب اگه کد t-sql همچین خروجی داشته باشه اره، ولی فکر نمیکنم..... ممنون میشم این کد را بزاری

nahidmoh
سه شنبه 19 خرداد 1394, 09:16 صبح
فرض می کنیم grd گرید ویو اصلی و grd1 گرید ویو داخلی باشد :
کد مربوط به grd :


SqlConnection con = newSqlConnection("...");


DataSet ds = newDataSet();


SqlDataAdapter da = newSqlDataAdapter("Select id,name,fname from t1",con);

con.Open();

da.Fill(ds);

con.Close();

grd.DataSource = ds;

grd.DataBind();

کد مربوط به grd1 : این کد باید در رویداد RowDataBound مربوط به grd نوشته شود مطابق کد :



protectedvoid grd_RowDataBound(object sender, GridViewRowEventArgs e)

{


if (e.Row.RowType == DataControlRowType.DataRow)

{


GridView grd1 = (GridView)e.Row.FindControl("grd1");


int id = int.Parse(grd.DataKeys[e.Row.RowIndex].Value.ToString());


SqlConnection con = newSqlConnection("...");


DataSet ds = newDataSet();


SqlDataAdapter da = newSqlDataAdapter("Select x,y from t2,t1 where t1.id=t2.id", con);

con.Open();

da.Fill(ds);

con.Close();

grd1.DataSource = ds;

grd1.DataBind();


}

}

nahidmoh
سه شنبه 19 خرداد 1394, 09:24 صبح
فقط در کد بالا دقت کنید که در هنگام بایند شدن grd باید DataKeyNames="id" قرار دهید

asp2.net
سه شنبه 19 خرداد 1394, 10:01 صبح
با سلام روی این کد e.Row.RowType و "(e.Row.FindControl("grd1 و ()e.Row.RowIndex).Value.ToString

خطا میگیره

nahidmoh
سه شنبه 19 خرداد 1394, 10:09 صبح
کد html و کد اصلی رو بزارید .لطفا

monadifard
سه شنبه 19 خرداد 1394, 11:43 صبح
var query = from r in objEntities.t1 join q in objEntities.t2 on r.id equals q.id select new

{

اسامی فیلدهایی که میخوای بکشی بیرون
};

GridView1.DataSource = query;

GridView1.DataBind();

}




کار کردن با دستورات linq به نظر من خیلی بهتره

xsbehx
چهارشنبه 20 خرداد 1394, 00:13 صبح
خوب چرا join نمی کنید این دوتا جدول رو بعد خروجیش و تو یک گرید ویو نمایش بدید؟