关于SqlDataAdapter和dataset连接的问题(在线,送份儿!)

pop133 2002-05-27 10:40:56
我现在实现的功能是通过SqlDataAdapter执行一个sql server中的带有参数的存储
过程然后把他加入到一个dataset对象中的表中,然后再和datagrid绑定,以下写法
是不是正确啊?(下边的写法好像不对)

SqlConnection Conn=new SqlConnection(PublicVar.Connstr);
SqlDataAdapter SqlDataAdapter1=new SqlDataAdapter();
SqlCommand Cmd=new SqlCommand();
DataSet Ds=new DataSet();
SqlDataAdapter1.SelectCommand=Cmd;
Cmd.CommandText="[changeroomnologselect]";
Cmd.CommandType=CommandType.StoredProcedure;
Cmd.Connection=Conn;
SqlParameter Proce=Cmd.Parameters.Add("@Proce", System.Data.SqlDbType.VarChar, 20);
SqlParameter textP=Cmd.Parameters.Add("@textP", System.Data.SqlDbType.VarChar, 50);
SqlParameter operators=Cmd.Parameters.Add("@operator", System.Data.SqlDbType.VarChar, 20);
Proce.Value="operator";
textP.Value=Text.ToString();
operators.Value=Parent.ToString();
Conn.Open();
Cmd.ExecuteReader();
SqlDataAdapter1.Fill(Ds,"changeroomnologselect"); //执行到这里出现错误!

未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中

其他信息:已有打开的与此连接相关联的 DataReader,必须首先将它关闭。
...全文
39 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
manboo 2002-05-27
  • 打赏
  • 举报
回复
我来学习的!我去试验!
redcaff_l 2002-05-27
  • 打赏
  • 举报
回复
你在其他地方使用的DataReader没有关闭。检查一下别的地方。
jerryfangsh 2002-05-27
  • 打赏
  • 举报
回复
SqlDataAdapter执行时,会自动运行SqlConnection的Open和Close命令。
所以不必使用SqlConnection的Open命令。

SqlCommand的ExecuteReader也具有相同的执行方式。所以Conn.Open可以省掉不用。

SqlCommand的ExecuteReader使用后,返回一个SqlDataReader对象,使用这个对象单向检索数据,但是你的程序中没有获取返回的SqlDataReader,所以没有任何用处,也可以不要了。
dreamdragon2008 2002-05-27
  • 打赏
  • 举报
回复
//Conn.Open();
//Cmd.ExecuteReader();

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧