问题描述
protectedvoidbtnShow_Click(objectsender,EventArgse){stringsqlStr="selectcount(*)fromtb_books";SqlConnectionsqlCon=newSqlConnection("server=.;database=bookshop;uid=sa;pwd=;");SqlCommandSelectCom=newSqlCommand(sqlStr,sqlCon);//引入DataSet和DataAdapterSqlDataAdaptersda=newSqlDataAdapter(SelectCom);DataSetds=newDataSet();//生成一张表sda.Fill(ds);//填充数据到ds中}错误提示:错误1与“System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable)”最匹配的重载方法具有一些无效参数错误2参数“1”:无法从“DataSet”转换为“System.Data.DataTable”有用usingSystem.Data;
解决方案
解决方案二:
DataSetds=newDataSet();//生成一张表sda.Fill(ds);//填充数据到ds中--------------------------------------------DataTabledt=newDataTable();//生成一张表sda.Fill(dt);//填充数据到dt中
解决方案三:
这个语句不行,还是这样。你帮我运行一下???
解决方案四:
using的命名空间里有同名的class(比如Excel的命名空间里也有DataSet)DataSetds=newDataSet();改为:System.Data.DataSetds=newSystem.Data.DataSet();加上命名空间的限制就可以了。
解决方案五:
SqlDataAdaptersda=newSqlDataAdapter(SelectCom,sqlCon);
解决方案六:
SqlDataAdaptersda=newSqlDataAdapter(SelectCom);连接字符串都丢了,你怎么查到的数据,还有你既然用了sqldataadapter又没参数化查询,为什么还用sqlcommand,还有你的数据库打开和关闭写哪里了,也就是sqlcon.open()和sqlcon.close()还有你必须用dataset?用datatable不行?如果可以的话,可以这么写protectedvoidbtnShow_Click(objectsender,EventArgse){stringsqlStr="selectcount(*)fromtb_books";SqlConnectionsqlCon=newSqlConnection("server=.;database=bookshop;uid=sa;pwd=;");SqlCommandSelectCom=newSqlCommand(sqlStr,sqlCon);DataTableds=newDataTable();//生成一张表sda.Load(ds);//填充数据到ds中}你写的DataSetds=newDataSet();//生成一张表不是生成一张表,而是生成一个数据集,这个数据集里面可以包含1张到多张表
解决方案七:
引用3楼的回复:
using的命名空间里有同名的class(比如Excel的命名空间里也有DataSet)DataSetds=newDataSet();改为:System.Data.DataSetds=newSystem.Data.DataSet();加上命名空间的限制就可以了。
谢了,是这个问题,那我不能每次都这么写吧,怎么才能彻底解决这个问题???