奇怪的错误:SqlDataAdapter”并不包含“Fill”的定义
using System.Data;using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default3 : System.Web.UI.Page
{
public void Page_Load(object sender, EventArgs e)
{
string myConnectionString = "server=.\\sqlexpress;database=ShoppingDB;user id=sa;pwd=123456";
string strSel = "select *.from users";
DataSet ds = new DataSet();
SqlConnection MyConn = new SqlConnection(myConnectionString);
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel, MyConn);
MyAdapter.Fill(ds, "Score");
GridView1.DataSource = ds.Tables["Sorre"].DefaultView;
GridView1.DataBind();
}
}
---------------------------------------------------------------------
错误 1 “SqlDataAdapter”方法没有采用“2”个参数的重载
错误 2 “SqlDataAdapter”并不包含“Fill”的定义
这个例子以前能成功,为什么重新装个VS后就出错了? --------------------编程问答-------------------- string strSel = "select *.from users";
string strSel = "select * from users"; --------------------编程问答-------------------- string strSel = "select * from users ";
这句我打错了,即使改string strSel = "select * from users "; 也不行。同样的错误。 --------------------编程问答-------------------- MyAdapter.Fill(ds, "Score");
GridView1.DataSource = ds.Tables["Sorre"].DefaultView;
Score or Sorre? --------------------编程问答-------------------- MyConn没有Open,会不会是这个原因呢 --------------------编程问答-------------------- 第一:MyConn.opn
第二:MyAdapter.Fill(ds, "Score");
GridView1.DataSource = ds.Tables["Score"].DefaultView;(sorre改了!这是最主要原因吧!) --------------------编程问答-------------------- Fill方法里的参数不对了 --------------------编程问答-------------------- Fill里的Score跟ds.Tables[""]這裏的不同,怎么不会也错呢 --------------------编程问答-------------------- GridView1.DataSource = ds.Tables["Sorre"].DefaultView;
改为
GridView1.DataSource = ds.Tables[0].DefaultView;
--------------------编程问答-------------------- 排除两点小错误后,应该不是代码的问题了。可能是编译环境有什么问题。
--------------------编程问答-------------------- MyConn没有打开,打开应该就没有事了
MyConn.open(); --------------------编程问答-------------------- MyConn没有打开,打开应该就没有事了
MyConn.open();
有的环境必须写明打开和关闭 有的不用 --------------------编程问答-------------------- 实际上这是一个问题,问题出在这句中:
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel, MyConn);
你把这句分开来写试一下,应该就会好的
--------------------编程问答-------------------- 按大家的指点修改后依然不能解决问题,错误还同上。用的是VS2005,以前用同样的环境做了同样的例子成功,但重装系统再装VS后做这个例子就出错了,但其他却一切正常。
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default3 : System.Web.UI.Page
{
public void Page_Load(object sender, EventArgs e)
{
string myConnectionString = "server=.\\sqlexpress;database=ShoppingDB;user id=sa;pwd=123456";
string strSel = "select * from users";
SqlConnection MyConn = new SqlConnection(myConnectionString);
MyConn.Open();
DataSet ds = new DataSet();
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel, MyConn);
MyAdapter.Fill(ds,"Score");
GridView1.DataSource = ds.Tables["Score"].DefaultView;
GridView1.DataBind();
}
}
---------------------------------------------------------------------
错误1“SqlDataAdapter”方法没有采用“2”个参数的重载
错误2“SqlDataAdapter”并不包含“Fill”的定义 --------------------编程问答-------------------- DataSet ds = new DataSet();
ds.Tables.Add("users");
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel, MyConn);
MyAdapter.Fill(ds,"Score"); --------------------编程问答-------------------- MyAdapter.Fill(ds,"Score");
是把ds中名为"Score"的表赋给MyAdapter
ds中没有"Score"的表肯定不行哦 --------------------编程问答-------------------- 5555555好象说错了...上面的错了
MyAdapter.Fill(ds,"Score");
应该是把名为"Score"的表加入到ds中....
--------------------编程问答--------------------
用这个试下吧
//封装了根据查询结果集填充DataSet的方法
objCommand对象
返回的Table名
strConnect连接字符串
public static DataSet GetDataSet(SqlCommand objCommand,string strTableName,strConnect)
{
SqlConnection objConnection=new SqlConnection(strConnect);
objCommand.Connection=objConnection;
try
{
//建立连接
if(objConnection.State==ConnectionState.Closed)
{
objConnection.Open();
}
//利用SqlDataApadpter类型的对象,填充DataSet
SqlDataAdapter objDataAdapter=new SqlDataAdapter(objCommand);
DataSet objDataSet=new DataSet();
//填充DataSet并返回
objDataAdapter.Fill(objDataSet,strTableName);
return objDataSet;
}
catch(Exception e)
{
//处理异常
throw e;
}
finally
{
//关闭连接
if(objConnection.State==ConnectionState.Open)
{
objConnection.Close();
}
}
} --------------------编程问答-------------------- 同样的代码复制进VS2003却成功,真是神了,谁有VS2005复制一份,试试是不是和我们同的问题? --------------------编程问答-------------------- 应该是你的这个页面的名字叫:sqlDataAdpter了吧,这样的话你就将"本来"的SqlDataAdpter覆盖了,所以你看不到Fill()了,因为Page类里并没有Fill()这个方法. --------------------编程问答-------------------- 偶也犯过这种错误.
补充:.NET技术 , C#