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

C# 阅读器封闭时尝试调用 MetaData 无效

2013-06-25 
C# 阅读器关闭时尝试调用 MetaData 无效public DataSet RunProcReturn(string procName){DataSet ds new

C# 阅读器关闭时尝试调用 MetaData 无效
        public DataSet RunProcReturn(string procName)
        {
            DataSet ds = new DataSet();
            try
            {
                SqlDataAdapter dap = CreateDataAdaper(procName, null);
                dap.Fill(ds, "tbName");
                return ds;
            }
            catch
            {
                Close();
                return ds;

            }          
        }
  private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
        {
            Open();
            SqlDataAdapter dap = new SqlDataAdapter(procName, strConn);
            dap.SelectCommand.CommandTimeout = 180;   
            dap.SelectCommand.CommandType = CommandType.Text;  //执行类型:命令文本
             if (prams != null)
            {
                foreach (SqlParameter parameter in prams)
                    dap.SelectCommand.Parameters.Add(parameter);
            }
            return dap;
        }

  public void Open()
        {
            // 打开数据库连接
            Close();
            if (strConn == null)
            {
                strConn = new SqlConnection(connStr);
            }
            if (strConn.State == System.Data.ConnectionState.Closed)
                strConn.Open();



        }

    public void Close()
        {
            if (strConn != null)
            {
                if (strConn.State == ConnectionState.Open)
                {
                    strConn.Close();
                    strConn.Dispose();
                    strConn = null;
                }

            }
        }
红色字体部分总是报" 阅读器关闭时尝试调用 MetaData 无效"异常(不一定每次都报),这是怎么回事,我写的这些方法有问题么 C# metadata 数据库 C#连接数据库?
[解决办法]
  如果你那个执行正常是不是需要colse掉呢。因为你其中的某一次执行成功然后一直没有关闭。

热点排行