调用函数出现异常时怎样终止该操作?//返回查询到的数据集
        public static DataSet ExecuteQuery(string strSQL)
        {
            try
            {
                DataSet ds = new DataSet();
                String strConnect = "Data Source=XIAOCUI2007\\MSSQLSERVER08;Initial Catalog=WaterSediDyMonit_YellowRiver;Integrated Security=SSPI";
                SqlConnection conn = new SqlConnection(strConnect);
                conn.Open();
                SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);
                da.Fill(ds);
                conn.Close();
                return ds;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "警告!");
                //终止该操作怎么写?但是还要写返回值怎么办?这个函数必须有返回值
            }//调用
  private void btExecuteQuery_Click(object sender, EventArgs e)
        {
            DataSet ds = ExecuteQuery(strSQL);
            //操作
        }

解决方案 »

  1.   

    返回值为空还是会报错的,我想在catch里面将该操作终止,怎么写呢?
      

  2.   

    或者把这个放在前面DataSet ds = new DataSet();
    ds = null;
    return ds;
      

  3.   

     public static DataSet ExecuteQuery(string strSQL)
            {
                  DataSet ds = new DataSet();
                    String strConnect = "Data Source=XIAOCUI2007\\MSSQLSERVER08;Initial Catalog=WaterSediDyMonit_YellowRiver;Integrated Security=SSPI";
                    SqlConnection conn = new SqlConnection(strConnect);
                    conn.Open();
                    SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);
                    da.Fill(ds);
                    conn.Close();
                    return ds;
                     }//调用
      private void btExecuteQuery_Click(object sender, EventArgs e)
            {
                try {
                DataSet ds = ExecuteQuery(strSQL);
                }
            catch(Exception MyEx) {
                //PageHelper.ShowExceptionMessage(MyEx);这是我们的处理
                MessageBox.Show(ex.ToString(), "警告!");
                }
            }
      

  4.   

    这个方法可以,不过这个函数调用的很频繁,难道每个button_Click里面都写上try,我想在函数内部解决!
      

  5.   

    MessageBox.Show(ex.ToString(), "警告!");
    return new DataSet();
      

  6.   

    这个函数还要被其他函数调用,如果返回new DataSet(),后面的函数就会报错。如果报错的话,我想通过这个函数将这个操作终止(就是这个Click就终止了),有好的方法么?
      

  7.   


    多了不想说了,建议详细了解C#的异常处理机制先,
    这是主线索,以此展开学习:
    http://msdn.microsoft.com/zh-cn/library/ms229014(v=VS.80).aspx
      

  8.   

    如果楼主不想在事件边界处理异常,
    楼主也可以在form边界或者app边界处理异常,
    可以参考
    http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/b256c06f-796b-4aa9-8ec7-6fca4e7b0e68/