返回數據庫數據的存儲過程函數(3個參數)(SQL Server)

// 返回數據庫數據的存儲過程函數(3個參數)(SQL Server)
    public SqlDataReader GetPrViewReader(String strProcedure, String strLookUp, String strNewLookUp, String strNewNewLookUp, String strBeginDate, String strEndDate)
    {
        // 數據庫連接參數(對客戶端應用程序配置文件的訪問)
        string strConn = @ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
        // 創建連接數據庫的一個打開連接
        SqlConnection MyConn = new SqlConnection(strConn);
        try // 正常運行
        {
            // 要對數據庫執行的一個SQL語句或存儲過程
            SqlCommand MyComm = new SqlCommand(strProcedure, MyConn);
            // 採用存儲過程方式
            MyComm.CommandType = CommandType.StoredProcedure;
            // 清除所有實例
            MyComm.Parameters.Clear();
            ////////////////////////////////////////////////////////////////////////////////////////////////
            // Lookup
            MyComm.Parameters.Add("@LookUp", SqlDbType.Text).Value = strLookUp;
            // NewLookUp
            MyComm.Parameters.Add("@NewLookUp", SqlDbType.Text).Value = strNewLookUp;
            // NewNewLookUp
            MyComm.Parameters.Add("@NewNewLookUp", SqlDbType.Text).Value = strNewNewLookUp;
            // BeginDate
            MyComm.Parameters.Add("@BeginDate", SqlDbType.Text).Value = strBeginDate;
            // BeginDate
            MyComm.Parameters.Add("@EndDate", SqlDbType.Text).Value = strEndDate;
            // 使用 ConnectionString 所指定的屬性設置打開數據庫連接
            MyConn.Open();
            // 提供一種從數據庫讀取只進的行流的一種方式
            SqlDataReader MyReader = MyComm.ExecuteReader();
            // 讀取數據,判斷是否有數據
            if (MyReader.HasRows)
            {
                // 返回成功
                return MyReader;
            }
            else
            {
                Console.Write("<script language=JavaScript>");
                Console.Write("alert('系統提示:數據讀取失敗或網絡忙,請稍後再試!');");
                Console.Write("</script>");
                if ((MyReader != null) & (MyReader.IsClosed != true))
                {
                    // 關閉
                    MyReader.Close();
                }
                // 判斷數據庫連接
                if (MyConn.State == ConnectionState.Open)
                {
                    // 關閉數據庫連接
                    MyConn.Close();
                }
                // 返回失敗
                return null;
            }
        }
        catch (SqlException) // 數據庫操作異常處理
        {
            Console.Write("<script language=JavaScript>");
            Console.Write("alert('系統提示:當前數據庫操作失敗或網絡忙,請稍後再試!');");
            Console.Write("</script>");
            if (MyConn.State == ConnectionState.Open)
            {
                // 關閉數據庫連接
                MyConn.Close();
            }
            // 返回失敗
            return null;
        }
        catch // 異常處理
        {
            if (MyConn.State == ConnectionState.Open)
            {
                // 關閉數據庫連接
                MyConn.Close();
            }
            // 返回失敗
            return null;
        }
     finally // 執行完畢清除在try塊中分配的任何資源
        {
            if (MyConn.State == ConnectionState.Open)
            {
                // 關閉數據庫連接
                //MyConn.Close();
            }
        }
    } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章