62,041
社区成员
发帖
与我相关
我的任务
分享
string conStr="***";
SqlConnection cn=new SqlConnection(conStr);
SqlCommand cmd=new SqlCommand("select * from Table where 店舗CD=1",cn);// 加条件就有问题 查了些资料说不能进行相关搜索 但想问问高手又没有解决办法。
//cmd.CommandType=CommandType.StoredProcedure;
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataSet ds=new DataSet();
da.Fill(ds,"Header");
da=new SqlDataAdapter("select * from ResultDetail",cn);
da.Fill(ds,"Detail");
DataRelation drl=new DataRelation("Head_Detail",ds.Tables["Header"].Columns["店舗CD"],ds.Tables["Detail"].Columns["storeCD"],true);
ds.Relations.Add(drl);
cn.Close();
cmd.Dispose();
da.Dispose();
DataRelation drl=new DataRelation("Head_Detail",ds.Tables["Header"].Columns["店舗CD"],ds.Tables["Detail"].Columns["storeCD"],false);
DataTable dt = drl.ParentTable;//等同于ds.Tables[0]
DataTable dt2 = drl.ChildTable;//等同于ds.Tables[1]
你程式中的问题是,Header表中是"店舗CD=1"时的资料,但是Detail表中取得的资料是所有资料,此时Detail表中与Header表不是完全对应的,就无法正确地建立DataRelation
string conStr="***";
SqlConnection cn=new SqlConnection(conStr);
cn.open();
SqlCommand cmd=new SqlCommand("select * from Table where 店舗CD=@id",cn );
cmd.Parameters.Add("id", SqlDbType.VarChar, 80).Value ="1";//输入当时查询的店铺CD,假设为1
//cmd.CommandType=CommandType.StoredProcedure;
SqlDataAdapter da=new SqlDataAdapter(cmd);
DataSet ds=new DataSet();
da.Fill(ds,"Header");
da=new SqlDataAdapter("select * from ResultDetail where storeCD=@storeCD",cn);
da.SelectCommand.Parameters.Add("storeCD", SqlDbType.VarChar, 80).Value = "1";
da.Fill(ds,"Detail");
DataRelation drl=new DataRelation("Head_Detail",ds.Tables["Header"].Columns["店舗CD"],ds.Tables["Detail"].Columns["storeCD"],true);
ds.Relations.Add(drl);
cn.Close();
cmd.Dispose();
da.Dispose();
this.GridView1.DataSource = ds.Tables[0];
this.GridView1.DataBind();
this.GridView2.DataSource = ds.Tables[1];
this.GridView2.DataBind();