首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SqlCommand在实施完ExecuteReader()后没有关闭是不是不能再来执行ExecuteNonQuery()

2012-08-30 
SqlCommand在执行完ExecuteReader()后没有关闭是不是不能再来执行ExecuteNonQuery()static void ChangeTim

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

热点排行