问题描述
SqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand("select*fromt",conn);//DataSetds=newDataSet();//sda.Fill(ds,"t");DataTableds=newDataTable();sda.Fill(ds);this.GridView1.DataKeyNames=newstring[]{"id"};this.GridView1.DataSource=ds.Tables["t"];this.GridView1.DataBind();
如果用dataset没问题,用datatable提示错误“System.Data.DataTable”不包含“Tables”的定义,并且找不到可接受类型为“System.Data.DataTable”的第一个参数的扩展方法“Tables”(是否缺少using指令或程序集引用?)请问如果用datatable应该怎么弄??
解决方案
解决方案二:
this.GridView1.DataSource=ds
解决方案三:
如果使用DataTable,则this.GridView1.DataSource=dataTable1;
解决方案四:
引用1楼jinjazz的回复:
this.GridView1.DataSource=ds
首先你必须知道dataset是可以放很多datatable的,所以dataset可以有Tables属性,而datatable没有Tables属性,这个是你出错的原因!
解决方案五:
ds.Tables[0];
解决方案六:
this.GridView1.DataSource=ds
解决方案七:
System.Data.DataTable就是一个表,dataSet可以有N个表,所以用DataTable时直接this.GridView1.DataSource=dataTable;this.GridView1.DataBind();
解决方案八:
引用3楼fly_goldfish的回复:
引用1楼jinjazz的回复:this.GridView1.DataSource=ds首先你必须知道dataset是可以放很多datatable的,所以dataset可以有Tables属性,而datatable没有Tables属性,这个是你出错的原因!
就是这个原因
解决方案九:
顶一楼和三楼,
解决方案十:
SqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand("select*fromt",conn);DataSetds=newDataSet();sda.Fill(ds,"t");DataTabledt=ds.Table[0].DefultViewthis.GridView1.DataKeyNames=newstring[]{"id"};this.GridView1.DataSource=dt;this.GridView1.DataBind();
这样就可以了
解决方案十一:
SqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand("select*fromt",conn);DataSetdataset=newDataSet();//sda.Fill(ds,"t");DataTableds=newDataTable();sda.Fill(ds);//DataSet里面添加DataTable,然后实现绑定dataset.tables.Add(ds);this.GridView1.DataKeyNames=newstring[]{"id"};this.GridView1.DataSource=ds.Tables["t"];或者直接和DataTable绑定this.GridView1.DataKeyNames=newstring[]{"id"};this.GridView1.DataSource=ds;
解决方案十二:
SqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand("select*fromt",conn);DataSetds=newDataSet();sda.Fill(ds,"t");DataTabledt=ds.Table[0]this.GridView1.DataKeyNames=newstring[]{"id"};this.GridView1.DataSource=dt;this.GridView1.DataBind();
解决方案十三:
学习了……
解决方案十四:
引用9楼jiang_jiajia10的回复:
C#codeSqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand("select*fromt",conn);DataSetds=newDataSet();sda.Fill(ds,"t");DataTabledt=ds.Table[0].DefultViewthis.GridView1.DataKeyNames=newstring[]{"id"};this.GridView1.DataSource=dt;this.GridView1.DataBind();这样就可以了
正解
解决方案十五:
学习了……
其他方案:
学习了顶了!!呵呵呵欢迎加入c#新群63242231共同学习
其他方案:
SqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand("select*fromt",conn);DataSetds=newDataSet();sda.Fill(ds,"t");this.GridView1.DataKeyNames=newstring[]{"id"};this.GridView1.DataSource=ds.Table["t"].Defaultview;this.GridView1.DataBind();有好多种方法,也同意9楼的,,
其他方案:
ds.tables[0];数据默认存储的表的索引为0,如果想使用this.GridView1.DataSource=ds.Tables["t"];fill的时候要多加个参数DataTableds=newDataTable();sda.Fill(ds,"t");