数据源的类型无效,它必须是 IListSource、IEnumerable 或 IDataSource. 5

以下是我写的自定义数据库访问类:publicstaticGridViewsqlretun(stringstr,stringsqlcon){SqlConnectionmyc... 以下是我写的自定义数据库访问类:
public static GridView sqlretun(string str,string sqlcon)
{
SqlConnection myconn=new SqlConnection(str);
myconn.Open();
try
{
SqlCommand mycomm = new SqlCommand(sqlcon, myconn);
SqlDataReader myreader = mycomm.ExecuteReader();
GridView gr = new GridView();
gr.DataSource = myreader;
gr.DataBind();
return gr;
}

下面是我写的调用方法:
string n1 = "server=.;Initial catalog=news;user=abc;password=321;";
string n2 = "select * from newsInfo";
GridView1.DataSource = Class2.sqlretun(n1, n2);
GridView1.DataBind();
运行后就出现上面的问题了。
回复一楼,如果我直接在后台写,不用自定义的类,就没问题啊。如:
/*SqlConnection myconn = new SqlConnection(n1);
myconn.Open();
SqlCommand mycomm=new SqlCommand(n2,myconn);
SqlDataReader myreader = mycomm.ExecuteReader();
GridView1.DataSource = myreader;
GridView1.DataBind();
myconn.Close();
myconn.Dispose();*/
这样是没问题的
------------------------------------
回复3楼:
错误提示:无法将sqldatareader隐式转换为gridview
展开
 我来答
ThinkIBM
2010-11-15 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5475万
展开全部
public static SqlDataReader sqlretun(string str,string sqlcon)
{
SqlConnection myconn=new SqlConnection(str);
myconn.Open();
try
{
SqlCommand mycomm = new SqlCommand(sqlcon, myconn);
// CommandBehavior.CloseConnection指示关闭Reader的同时关闭数据库连接Connection
SqlDataReader myreader = mycomm.ExecuteReader(CommandBehavior.CloseConnection);
return myreader;
}

调用就是你那样调用
string n1 =
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
370826chen
2010-11-14 · TA获得超过152个赞
知道答主
回答量:344
采纳率:0%
帮助的人:139万
展开全部
gr.DataSource = myreader;
myreader是SQLDataReader类型的,datasource只能是集合之类的东西
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式