日期:2014-05-18  浏览次数:20892 次

捕捉SQL语句异常
从数据库中查找数据,如果没有查找到数据,会报错。代码如下:
C# code

        //查询语句
        public DataSet GetBSF(string BSF)
        {
            return data.RunProcReturn("select * from tb_Main where bsf='" + BSF + "'", "tb_Main");
        }

        /// <summary>
        /// 执行命令文本,并且返回DataSet数据集
        /// </summary>
        /// <param name="procName">命令文本</param>
        /// <param name="tbName">数据表名称</param>
        /// <returns>DataSet</returns>
        public DataSet RunProcReturn(string procName, string tbName)
        {
            SqlDataAdapter dap = CreateDataAdaper(procName, null);
            DataSet ds = new DataSet();
            dap.Fill(ds, tbName);
            this.Close();
            //得到执行成功返回值
            return ds;
        }



为了防止出错错误,我准备用捕捉异常的方法。
请问,如果要捕捉异常,应该如何做呢?


------解决方案--------------------
例如SQL语法错误,VS编译是发现不了的,只有执行SQL语句时才会报错。Catch会捕获这些异常并以MessageBox提示给用户。不然有语法错误的话程序就会关闭。
------解决方案--------------------
探讨

追问一下,对数据集,应该捕捉哪种异常?

------解决方案--------------------
对于sql语句的问题,我的做法都是在catch(Exception ex)定一个断点,并监视ex,有异常时就会看到具体是什么问题