返回數據庫數據總數的過程(1個參數)

// 返回數據庫數據總數的過程(1個參數)
    public int GetDataCount(String MySQL)
    {
        int iCount = 0;
        // 數據庫連接參數(對客戶端應用程序配置文件的訪問)
        string strConn = @ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
        // 數據庫類型參數(對客戶端應用程序配置文件的訪問)
        string strDBType = @ConfigurationManager.ConnectionStrings["MyConnectionString"].ProviderName;
        // 數據庫的一個連接
        IDbConnection MyConn;
        // 創建提供程序對數據源類的實現的實例
        System.Data.Common.DbProviderFactory MyFactory = System.Data.Common.DbProviderFactories.GetFactory(strDBType);
        // 創建連接數據庫的一個打開連接
        MyConn = MyFactory.CreateConnection();
        // 獲取或設置用於打開數據庫的字符串
        MyConn.ConnectionString = strConn;
        try
        {
            // 使用 ConnectionString 所指定的屬性設置打開數據庫連接
            MyConn.Open();
            // 數據庫SQL語句
            String strSQL = @MySQL.Trim().ToString();
            // 創建要對數據庫執行的一個SQL語句或存儲過程
            SqlCommand MySqlComm;
            // 創建要對數據庫執行的一個SQL語句或存儲過程
            OleDbCommand MyOleDbComm;
            // 創建要對數據庫執行的一個SQL語句或存儲過程
            OdbcCommand MyOdbcComm;
            // 數據庫類型
            switch (strDBType)
            {
                /* ------------------------------------------------------------------------------------------------ */
                /* 使用SqlServer數據庫                                                                              */
                /* ------------------------------------------------------------------------------------------------ */
                case "System.Data.SqlClient":
                    // 連接到數據源時執行的 SQL 語句
                    MySqlComm = (SqlCommand)MyConn.CreateCommand();
                    // 指定如何解釋命令字符串
                    MySqlComm.CommandType = CommandType.Text;
                    // 數據庫SQL語句
                    MySqlComm.CommandText = strSQL;
                    // 提供一種從數據庫讀取只進的一種方式
                    SqlDataReader MySqlReader = MySqlComm.ExecuteReader();
                    // 讀取數據,判斷是否有數據
                    if (MySqlReader.HasRows)
                    {
                        // 讀取數據
                        while (MySqlReader.Read())
                        {
                            iCount++;
                        }
                        // 返回成功
                        return iCount;
                    }
                    break;
                /* ------------------------------------------------------------------------------------------------ */
                /* 使用Access數據庫                                                                                 */
                /* ------------------------------------------------------------------------------------------------ */
                case "System.Data.OleDb":
                    // 連接到數據源時執行的 SQL 語句
                    MyOleDbComm = (OleDbCommand)MyConn.CreateCommand();
                    // 指定如何解釋命令字符串
                    MyOleDbComm.CommandType = CommandType.Text;
                    // 數據庫SQL語句
                    MyOleDbComm.CommandText = strSQL;
                    // 提供一種從數據庫讀取只進的一種方式
                    OleDbDataReader MyOleDbReader = MyOleDbComm.ExecuteReader();
                    // 讀取數據,判斷是否有數據
                    if (MyOleDbReader.HasRows)
                    {
                        // 讀取數據
                        while (MyOleDbReader.Read())
                        {
                            iCount++;
                        }
                        // 返回成功
                        return iCount;
                    }
                    break;
                /* ------------------------------------------------------------------------------------------------ */
                /* 使用Odbc數據庫                                                                                   */
                /* ------------------------------------------------------------------------------------------------ */
                case "System.Data.Odbc":
                    // 連接到數據源時執行的 SQL 語句
                    MyOdbcComm = (OdbcCommand)MyConn.CreateCommand();
                    // 指定如何解釋命令字符串
                    MyOdbcComm.CommandType = CommandType.Text;
                    // 數據庫SQL語句
                    MyOdbcComm.CommandText = strSQL;
                    // 提供一種從數據庫讀取只進的一種方式
                    OdbcDataReader MyOdbcReader = MyOdbcComm.ExecuteReader();
                    // 讀取數據,判斷是否有數據
                    if (MyOdbcReader.HasRows)
                    {
                        // 讀取數據
                        while (MyOdbcReader.Read())
                        {
                            iCount++;
                        }
                        // 返回成功
                        return iCount;
                    }
                    break;
                default:
                    break;
            }
            // 返回失敗
            return 0;
        }
        catch (SqlException) // 數據庫操作異常處理
        {
            Console.Write("<script language=JavaScript>");
            Console.Write("alert('系統提示:當前數據庫操作失敗或網絡忙,請稍後再試!');");
            Console.Write("</script>");
            if (MyConn.State == ConnectionState.Open)
            {
                // 關閉數據庫連接
                MyConn.Close();
            }
            // 返回失敗
            return 0;
        }
        catch (OleDbException) // 數據庫操作異常處理
        {
            Console.Write("<script language=JavaScript>");
            Console.Write("alert('系統提示:當前數據庫操作失敗或網絡忙,請稍後再試!');");
            Console.Write("</script>");
            if (MyConn.State == ConnectionState.Open)
            {
                // 關閉數據庫連接
                MyConn.Close();
            }
            // 返回失敗
            return 0;
        }
        catch (OdbcException) // 數據庫操作異常處理
        {
            Console.Write("<script language=JavaScript>");
            Console.Write("alert('系統提示:當前數據庫操作失敗或網絡忙,請稍後再試!');");
            Console.Write("</script>");
            if (MyConn.State == ConnectionState.Open)
            {
                // 關閉數據庫連接
                MyConn.Close();
            }
            // 返回失敗
            return 0;
        }
        catch (Exception Exp) // 異常處理
        {
            // 異常處理
            Console.Write("<script language=JavaScript>");
            Console.Write("alert('" + Exp.Message.ToString() + "');");
            Console.Write("</script>");
            if (MyConn.State == ConnectionState.Open)
            {
                // 關閉數據庫連接
                MyConn.Close();
            }
            // 返回失敗
            return 0;
        }
  finally // 執行完畢清除在try塊中分配的任何資源
        {
            if (MyConn.State == ConnectionState.Open)
            {
                // 關閉數據庫連接
                MyConn.Close();
            }
        }
    } 
發佈了43 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章