当前位置:编程学习 > C#/ASP.NET >>

向数据库里面更新数据出现问题:“已有打开的与此命令相关联的 DataReader,必须首先将它关闭。”

数据库里面的表为:

状态 号码 内容
 0   123  hao
 0   134  ni
 1   189  ma  

当状态为0 的时候 从数据库里面查询出‘号码’,‘内容’。发送出去。发送成功状态由0改变为1。 显示的错误为:已有打开的与此命令相关联的 DataReader,必须首先将它关闭。代码如下:

  private void button1_Click(object sender, EventArgs e)
        {

            String Setting = Convert.ToString(ConfigurationManager.ConnectionStrings["connstr"]);
            SqlConnection SCcon = new SqlConnection(Setting);
            SCcon.Open();
            SqlCommand SCSelectAll = new SqlCommand("zhuantai", SCcon);
            SCSelectAll.CommandType = CommandType.StoredProcedure;
            using (SqlDataReader SDRResultAll = SCSelectAll.ExecuteReader(CommandBehavior.CloseConnection))
            {

                if (SDRResultAll.HasRows)
                {

                    while (SDRResultAll.Read())
                    {
                        if (!SDRResultAll.IsDBNull(0))
                        {

                            string sGetpointname = Convert.ToString(SDRResultAll.GetValue(0));
                            string sGetContent = Convert.ToString(SDRResultAll.GetValue(1));
                            yingyong.APServiceService ws = new SMSAP.yingyong.APServiceService();
                            string temp = ws.sendMessage(" ", " ", " ", " ", sGetpointname, "", sGetContent);
                            MessageBox.Show(temp);
                              
                            SqlCommand SCInsert = SCcon.CreateCommand();
                            string strInsert = "update df_duanxin set zangtai='1'where zangtai='0'";
                            SCInsert.CommandText = strInsert;
                            SCInsert.ExecuteNonQuery();



                        }

                    }

                }
                
                
                
            }
                 --------------------编程问答-------------------- 一帖两问?其实提示信息已经说明了 --------------------编程问答-------------------- 感觉怪怪的,是否数据库连接没关啊?
提示的错误好像是说SqlDataReader 没关。 --------------------编程问答-------------------- 那个方法不行吗,重新创建sqlconnection
--------------------编程问答-------------------- 我觉得在用SqlCommand进行更新操作,SCcon.Open();应该还有个SCcon.Close();它们应该是配对使用的 --------------------编程问答--------------------
不要用这个:SqlDataReader SDRResultAll 
改用这个:DataSet DSTemp;

你查查DataReader的使用帮助就知道了。 --------------------编程问答-------------------- 修改的时候
string sql = "update"
string connString ="server=.;database=数据库名;uid=sa;pwd=ok;";
sqlconnection con = new sqlconnection(connString);
con.open();
sqlcommand command = new sqlcommand(sql,con);
command.ExecuteNunQuetry();
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,