向数据库里面更新数据出现问题:“已有打开的与此命令相关联的 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#