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();
}
}
}