首页 新闻 赞助 找找看

C# 这段代码有问题吗

0
[已解决问题] 解决于 2013-06-07 11:21
        public object MyExecuteScalar(string strSQL, SqlParameter[] arrParameter)
        {
            SqlConnection Conn = new SqlConnection(Data_Basic.strConn);
            Cmd = new SqlCommand(strSQL,Conn);
            if (!MetarnetRegex.IsSQL(strSQL))
            {
                Cmd.CommandType = CommandType.StoredProcedure;
            }
            if (arrParameter != null)
            {
                for (int num1 = 0; num1 < arrParameter.Length; num1++)
                {
                    Cmd.Parameters.Add(arrParameter[num1]);
                }
            }
            Conn.Open();
            object obj1 = Cmd.ExecuteScalar();
            Conn.Close();
            return obj1;
        }

报了一个错
ExecuteScalar 要求已打开且可用的连接。连接的当前状态为已关闭。
指向的是这个方法
90后1场梦的主页 90后1场梦 | 菜鸟二级 | 园豆:244
提问于:2013-05-22 11:32
< >
分享
最佳答案
0
Conn.Open();要写在前面,调用的时候你这个连接没有打开
奖励园豆:5
twistting | 小虾三级 |园豆:575 | 2013-05-22 19:35
其他回答(5)
0

调试进这个方法看看呗,

应该是数据库连接的问题,

你查看一下你的数据库连接串是不是有问题.

只会造轮子 | 园豆:2274 (老鸟四级) | 2013-05-22 11:40
0
Conn.Open();写在
SqlConnection Conn = new SqlConnection(Data_Basic.strConn);这句后面试试
icyme | 园豆:77 (初学一级) | 2013-05-22 12:27
0
using(
SqlConnection Conn = new SqlConnection(Data_Basic.strConn)
)
{
  Conn.open();
  var cmd = Conn.CreateCommand();
  
      if (!MetarnetRegex.IsSQL(strSQL))
      {
                Cmd.CommandType = CommandType.StoredProcedure;
      }
      if (arrParameter != null)
      {
                for (int num1 = 0; num1 < arrParameter.Length; num1++)
                {
                    Cmd.Parameters.Add(arrParameter[num1]);
                }
      }
object obj1 = Cmd.ExecuteScalar();
return obj1;

}
Zachary_Fan | 园豆:762 (小虾三级) | 2013-05-22 14:03
0

很明显数据库连接没有打开,在执行Cmd.ExcuteScallar之前,要加上cmd.Connection.Open();



                        
iammackong | 园豆:204 (菜鸟二级) | 2013-05-23 00:52
0

连接字符串有问题呗。

数据酷软件 | 园豆:130 (初学一级) | 2013-05-23 16:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册