close
1. 前言
在C#的程式設計中,如果要常常從資料庫擷取資料以及操作資料庫的新增、修改、刪除功能,需要撰寫一些冗長且重複的程式碼,因此將操作資料庫寫成簡單的方法,以下是此方法的程式。
2. 說明
以下舉出常用的資料庫包括MSSQL、MySQL與Oracle,首先加入命名空間。
using System.Data.SqlClient; using MySql.Data.MySqlClient; using System.Data.OracleClient;
MSSQL:
public static SqlConnection OpenSqlConn(string Server, string Database, string dbuid, string dbpwd) { string cnstr = string.Format("server={0};database={1};uid={2};pwd={3};Connect Timeout = 180", Server, Database, dbuid, dbpwd); SqlConnection icn = new SqlConnection(); icn.ConnectionString = cnstr; if (icn.State == ConnectionState.Open) icn.Close(); icn.Open(); return icn; } public static DataTable GetSqlDataTable(string Server, string Database, string dbuid, string dbpwd, string SqlString) { DataTable myDataTable = new DataTable(); SqlConnection icn = null; icn = OpenSqlConn(Server, Database, dbuid, dbpwd); SqlCommand isc = new SqlCommand(); SqlDataAdapter da = new SqlDataAdapter(isc); isc.Connection = icn; isc.CommandText = SqlString; isc.CommandTimeout = 600; DataSet ds = new DataSet(); ds.Clear(); da.Fill(ds); myDataTable = ds.Tables[0]; if (icn.State == ConnectionState.Open) icn.Close(); return myDataTable; } public static void SqlInsertUpdateDelete(string Server, string Database, string dbuid, string dbpwd, string SqlSelectString) { SqlConnection icn = OpenSqlConn(Server, Database, dbuid, dbpwd); SqlCommand cmd = new SqlCommand(SqlSelectString, icn); SqlTransaction mySqlTransaction = icn.BeginTransaction(); try { cmd.Transaction = mySqlTransaction; cmd.ExecuteNonQuery(); mySqlTransaction.Commit(); } catch (Exception ex) { mySqlTransaction.Rollback(); throw (ex); } if (icn.State == ConnectionState.Open) icn.Close(); }
MySQL:
public static MySqlConnection MyOpenConn(string Server, string Database, string dbuid, string dbpwd) { string cnstr = string.Format("server={0};database={1};uid={2};pwd={3};Connect Timeout = 180; CharSet=utf8", Server, Database, dbuid, dbpwd); MySqlConnection icn = new MySqlConnection(); icn.ConnectionString = cnstr; if (icn.State == ConnectionState.Open) icn.Close(); icn.Open(); return icn; } public static DataTable GetMyDataTable(string Server, string Database, string dbuid, string dbpwd, string SqlString) { DataTable myDataTable = new DataTable(); MySqlConnection icn = null; icn = MyOpenConn(Server, Database, dbuid, dbpwd); MySqlCommand isc = new MySqlCommand(); MySqlDataAdapter da = new MySqlDataAdapter(isc); isc.Connection = icn; isc.CommandText = SqlString; isc.CommandTimeout = 600; DataSet ds = new DataSet(); ds.Clear(); da.Fill(ds); myDataTable = ds.Tables[0]; if (icn.State == ConnectionState.Open) icn.Close(); return myDataTable; } public static void MySqlInsertUpdateDelete(string Server, string Database, string dbuid, string dbpwd, string SqlSelectString) { MySqlConnection icn = MyOpenConn(Server, Database, dbuid, dbpwd); MySqlCommand cmd = new MySqlCommand(SqlSelectString, icn); MySqlTransaction mySqlTransaction = icn.BeginTransaction(); try { cmd.Transaction = mySqlTransaction; cmd.ExecuteNonQuery(); mySqlTransaction.Commit(); } catch (Exception ex) { mySqlTransaction.Rollback(); throw (ex); } if (icn.State == ConnectionState.Open) icn.Close(); }
Oracle:
public static OracleConnection OpenConn(string Server, string Database, string dbuid, string dbpwd) { string cnstr = string.Format("server={0};Data Source={1};User ID={2};Password={3}", Server, Database, dbuid, dbpwd); OracleConnection icn = new OracleConnection(); icn.ConnectionString = cnstr; if (icn.State == ConnectionState.Open) icn.Close(); icn.Open(); return icn; } public static DataTable GetDataTable(string Server, string Database, string dbuid, string dbpwd, string SqlString) { DataTable myDataTable = new DataTable(); OracleConnection icn = null; icn = OpenConn(Server, Database, dbuid, dbpwd); OracleCommand isc = new OracleCommand(); OracleDataAdapter da = new OracleDataAdapter(isc); isc.Connection = icn; isc.CommandText = SqlString; isc.CommandTimeout = 600; DataSet ds = new DataSet(); ds.Clear(); da.Fill(ds); myDataTable = ds.Tables[0]; if (icn.State == ConnectionState.Open) icn.Close(); return myDataTable; } public static void OracleInsertUpdateDelete(string Server, string Database, string dbuid, string dbpwd, string SqlSelectString) { OracleConnection icn = OpenConn(Server, Database, dbuid, dbpwd); OracleCommand cmd = new OracleCommand(SqlSelectString, icn); OracleTransaction mySqlTransaction = icn.BeginTransaction(); try { cmd.Transaction = mySqlTransaction; cmd.ExecuteNonQuery(); mySqlTransaction.Commit(); } catch (Exception ex) { mySqlTransaction.Rollback(); throw (ex); } if (icn.State == ConnectionState.Open) icn.Close(); }
3. 應用
這樣以後要取得DataTable只要寫下列程式碼(以Oracle為例)
string sql = "select * from TableName"; DataTable myDataTable = GetDataTable("ServerName","DataBaseName","UserName","PassWord",sql);
文章標籤
全站熱搜