形如:
string sql= select a.工号,b.姓名 from tableA a,tableB b where a.ID=b.ID想让dataGird 中显示两个字段,怎么不行呢?采取下列方法,请高手指点一下!
SqlConnection conn=new SqlConnection() ;
SqlCommand mycm=new SqlCommand() ;
SqlDataAdapter mydata=new SqlDataAdapter() ;
conn.ConnectionString="server=192.168.1.100;database=service;user id=sa;password=";
mycm.Connection =conn;
conn.Open ();
mycm.CommandText=sql;
mydata.SelectCommand=mycm;
DataSet myDs=new DataSet();
mydata.Fill(myDs,“tableA”);
dataGrid1.DataSource=myDs;为什么不行呀,高手指点一下!?????????
string sql= select a.工号,b.姓名 from tableA a,tableB b where a.ID=b.ID想让dataGird 中显示两个字段,怎么不行呢?采取下列方法,请高手指点一下!
SqlConnection conn=new SqlConnection() ;
SqlCommand mycm=new SqlCommand() ;
SqlDataAdapter mydata=new SqlDataAdapter() ;
conn.ConnectionString="server=192.168.1.100;database=service;user id=sa;password=";
mycm.Connection =conn;
conn.Open ();
mycm.CommandText=sql;
mydata.SelectCommand=mycm;
DataSet myDs=new DataSet();
mydata.Fill(myDs,“tableA”);
dataGrid1.DataSource=myDs;为什么不行呀,高手指点一下!?????????
我现在还没看一下,我想先问你一下,这两句在sql 中应该一样的呀,你怎么认为呢
一个就是你所采用的join查询.
第二个是批次查询,然后分别填充到DataSet的数据表中,把这些DataTable用关系联系起来,这样数据量小得多,速度会快很多.忘了join查询,这不是ado.net的真意,推荐<ADO.NET技术内幕>这本书,里面会告诉为什么.另外DataSet能处理三维的表,这是概念是很重要的.
我一般是用join的 呵呵
按照JOIN这种方法是可以,但是这是为什么呢,能不能讲解一下呢?
关于你说的dataGrid.dataBind() 我是用
this.dataGrid1.SetDataBinding(dataSet1,dataSet1.Tables [0].ToString ());
也可以!数据绑定是不是有多种方法呀?
TO: tajlolo(tajlolo)
按你那种采取第二种方法,我有点理解不透!大约布骤是不是这样的呢?:
DataSet myDs=new DataSet();
select * from tableA
select * from tableB
mydata.Fill(myDs,“tableA”);
mydata.Fill(myDs,“tableB");
myDs.merge(table1,table2) //看资料这是合并的意思!
但是我想要的字段怎么显示?还有 两个表之间是怎么关联的呢?不会是自动搜询相同字段吧?,能不能给我讲一下呢?谢谢!
dataGrid1.DataSource=myDs.Tables["tableA"];
你这个应该是对一个表操作的吧!
fill 到一个datatable 里当然可以,但是我想要的字段怎么显示?还有 两个表之间是怎么关联的呢?不会是自动搜询相同字段吧?,能不能给我讲一下呢?谢谢!
如果你用的SqlServer,就在查询分析器里,新建一视图
如果你用的Access,就新建一查询,
for example :select A.column1 A.column2 from A where A.column1=B.column1 and
B.column2=A.column2
然后绑定Datagrid,就可以了!