dataset 与datatable的问题

问题描述

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");

时间: 2024-08-18 03:34:33

dataset 与datatable的问题的相关文章

ADO.NET 2.0 DataSet和DataTable 新功能新特性

ado ADO.NET 2.0 Dataset和Datatable 新功能新特性 1.新的索引引擎更快的执行效率   下面这段代码在2003中需要157秒,在2005中只要11秒就可以完成: DataSet ds = new DataSet(); ds.Tables.Add("BigTable");ds.Tables[0].Columns.Add("ID", Type.GetType("System.Int32"));ds.Tables[0].C

求DataSet、DataTable 更新到 Access 方法!!!

问题描述 DataSet.DataTable更新到Access方法!!!网上查了很多例子,都不得行!!!那位大侠帮帮忙啊!最有有实际的例子可以下载!///<summary>///读取数据///</summary>///<paramname="strsql"></param>///<paramname="dtt"></param>publicvoidred(stringsql,DataTabled

c#dataset和datatable的小疑问?

问题描述 我想知道数据库查询语句的时候用dataset所花的时间是不是比datatable要花的时间多呢?我要查的数据很少,只有一行,那么用DataRow,DataColumn呢? 解决方案 解决方案二:datatable算是dataset的一个成员,如果dataset只有一个datatable成员,个人觉得查询速度差不多,向DataTable中添加一个或多个DataColumn对象来定义DataTable的结构,通过DataRow将数据添加到用DataColumn定义好DataTable中.解

DataSet、DataTable、DataRow区别详解_实用技巧

DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"]   DataTable 表示内存中数据的一个表. 公共属性 Columns 获取属于该表的列的集合. DataSet 获取此表所属的 DataSet. DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图. PrimaryKey 获取或设置充当数据表主键的列的数组. Rows 获取属于该表的行的集合. TableName 获取

asp.net DataSet,DataTable,DateView的关系和用法

asp教程.net dataset,datatable,dateview的关系和用法 ataset就是一个临时的小仓库,通过sqldataapert,可相当于卡车,将数据从数据库教程中通过适配器sqldataapert放到dataset中,所以即使断开了连接,也照样可以与数据库打交道,下面看一个例子: public static dataset query(string sqlstr)       {          using(oledbconnection conn=new oledbco

SqlAdapter 生成 DataSet 或 DataTable

sqladapter 生成 dataset 或 datatable 1. 创建一个 sqlcommand 对象以调用该存储过程,并将其与一个 sqlconnection 对象(显示)或连接字符串(不显示)相关联.   2. 创建一个新的 sqldataadapter 对象并将其与 sqlcommand 对象相关联.   3. 创建一个 datatable(也可以创建一个 dataset)对象.使用构造函数参数来命名 datatable.   4. 调用 sqldataadapter 对象的 fi

如何把已经属于一个DataSet的DataTable加到另一个DataSet中解决方法

解决方案一.参考.:http://blog.163.com/zhug_1970/blog/static/42983053201057525519/ 1.先Clone你的DataTable     DataTable   rtnTbl   =     aDt.Clone()   ; 2.复制数据     //复制     foreach(   DataRow   r   in   aDt)     {        object   []arr   =   r.ItemArray   ;     

C# DataSet和DataTable详解

1.创建DataSet对象: DataSet ds = new DataSet("DataSetName"); 2.查看调用SqlDataAdapter.Fill创建的结构 da.Fill(ds,"Orders"); DataTable tbl = ds.Table[0]; foreach(DataColumn col in tbl.Columns) Console.WriteLine(col.ColumnName); 3.查看SqlDataAdapter返回的数据

DataSet与DataTable的区别示例介绍_实用技巧

DataSet:数据集.一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable DataTable:数据表. 一: SqlDataAdapter da=new SqlDataAdapter(cmd); DataTable dt=new DataTable(); da.Fill(dt); ----------------- 直接把数据结果放到 datatable中, 二: SqlDataAdapter da=new SqlDataAdapter(cmd