SqlCommand在执行完ExecuteReader()后没有关闭是不是不能再来执行ExecuteNonQuery()
static void ChangeTime(DateTime start,DateTime end,SqlConnection sql_conn,string table_name)
{
SqlCommand sql_Command = sql_conn.CreateCommand();
sql_Command.CommandText = "SELECT top 1 name FROM SysColumns WHERE id=Object_Id('" + table_name + "')";
string primarykey = sql_Command.ExecuteScalar().ToString(); //获取表的主键名
string selectkey_str = "select " + primarykey + " from " + table_name;
sql_Command.CommandText = selectkey_str;
SqlDataReader result = sql_Command.ExecuteReader();
while (result.Read())
{
int id = Convert.ToInt32(result.GetValue(0));
DateTime createdate = RandomDay(start, end); //生成一个随机日期
string str = "update " + table_name + " set CreateDate='" + createdate+"' where "+primarykey+"="+ id;
sql_Command.CommandText = str;
Console.WriteLine(str);
sql_Command.ExecuteNonQuery();
}
代码执行到sql_Command.ExecuteNonQuery()出现错误:已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。
请问是不是sql_command在执行完ExecuteReader()后没有关闭不能再来执行ExecuteNonQuery()?
[解决办法]
不好意思,这个动作是在关闭sqldatareader时关自动关闭sqlconnection,不用另调用数据库连接关闭的方法了,一种简化的方式,不能解决你此处的问题
[解决办法]
参考:
http://zhidao.baidu.com/question/255236540.html