資料庫連接字元串(web.config來配置),可以動態更改connectionString支持多資料庫. SqlServer調用資料庫 using System; using System.Collections.Generic; using System.Linq; using System.T ...
資料庫連接字元串(web.config來配置),可以動態更改connectionString支持多資料庫.
SqlServer調用資料庫

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; using System.Data; using System.Data.SqlClient; namespace Dal { public static class DBHelper { public static string strCon = "Data Source=.;Initial Catalog=Week3;Integrated Security=True"; /// <summary> /// 增刪改 /// </summary> /// <param name="sql">sql語句</param> /// <param name="str">連接字元串</param> /// <returns></returns> public static int ExecuteNonQuery(string sql) { //實例化連接對象 SqlConnection conn = new SqlConnection(strCon); int result = 0; try { conn.Open(); //實例化命令對象 SqlCommand cmd = new SqlCommand(sql, conn); //執行命令 result = cmd.ExecuteNonQuery(); } catch (Exception) { throw; } finally { conn.Close(); } return result; } /// <summary> /// 獲取表格 /// </summary> /// <param name="sql">sql語句</param> /// <param name="str">連接字元串</param> /// <returns></returns> public static DataTable GetDataTable(string sql) { //實例化連接對象 SqlConnection conn = new SqlConnection(strCon); DataTable dt = new DataTable(); try { //實例化適配器 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); sda.Fill(dt); } catch (Exception) { throw; } return dt; } /// <summary> /// /// </summary> /// <param name="sql">sql語句</param> /// <param name="str">連接字元串</param> /// <returns></returns> public static SqlDataReader GetDataReader(string sql) { //實例化連接對象 SqlConnection conn = new SqlConnection(strCon); SqlDataReader sdr; try { conn.Open(); //實例化命令對象 SqlCommand cmd = new SqlCommand(sql, conn); sdr = cmd.ExecuteReader(); } catch (Exception) { throw; } return sdr; } /// <summary> /// 返回單行單列 /// </summary> /// <param name="sql">sql語句</param> /// <param name="str">連接字元串</param> /// <returns></returns> public static int ExecuteScalar(string sql) { //實例化連接對象 SqlConnection conn = new SqlConnection(strCon); int result = 0; try { conn.Open(); //實例化命令對象 SqlCommand cmd = new SqlCommand(sql, conn); result = Convert.ToInt32(cmd.ExecuteScalar()); } catch (Exception) { throw; } finally { conn.Close(); } return result; } /// <summary> /// 信息分頁顯示 /// </summary> /// <returns></returns> public static DataTable GetInfoByPage(int Pageindex, int PageSize) { string sql = string.Format(@"select top {0}* from( select XinXi.*,ROW_NUMBER() over(order by XinXi.XinXiId) pid ,Type.Name from Type inner join XinXi on Type.Id= XinXi.TypeId ) as temp where temp.pid>{1}", PageSize, (Pageindex - 1) * PageSize); return DBHelper.GetDataTable(sql); } /// <summary> /// 獲取個數 /// </summary> /// <returns></returns> public static int GetCount() { string sql = "select count(XinXi.XinXiId) from Type inner join XinXi on Type.Id= XinXi.TypeId"; return DBHelper.ExecuteScalar(sql); } } }SqlServer-DBHelper
SqlServer調用資料庫存儲過程

using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; namespace Unit07_Service { public class DBHelper { public static string connStr = "Data Source=.;Initial Catalog=DB_News;Integrated Security=True"; public static SqlConnection cnn = new SqlConnection(connStr); /// <summary> /// 執行增刪改的操作 /// </summary> /// <param name="sql">sql命令</param> /// <returns>受影響的行數</returns> public static int ExecuteNonQuery(string sql) { Open(); SqlCommand command = new SqlCommand(sql, cnn); int result = command.ExecuteNonQuery(); cnn.Close(); return result; } /// <summary> /// 查詢單個值 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static object ExecuteScalar(string sql) { Open(); SqlCommand command = new SqlCommand(sql, cnn); object result = command.ExecuteScalar(); cnn.Close(); return result; } /// <summary> /// 返回數據表 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static DataTable GetDataTable(string sql) { SqlDataAdapter adapter = new SqlDataAdapter(sql, cnn); DataSet ds = new DataSet(); adapter.Fill(ds); return ds.Tables[0]; } /// <summary> /// 返回DataReader對象,使用結束後,勿忘關閉DataReader與資料庫 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static SqlDataReader GetDataReader(string sql) { Open(); SqlCommand command = new SqlCommand(sql, cnn); return command.ExecuteReader(); } /// <summary> /// 打開資料庫 /// </summary> public static void Open() { if (cnn.State == ConnectionState.Broken || cnn.State == ConnectionState.Open) { cnn.Close(); } cnn.Open(); } /// <summary> /// 打開資料庫 /// </summary> public static void Close() { cnn.Close(); } /// <summary> /// 使用存儲過程查詢數據結果 /// </summary> /// <param name="sql"></param> /// <param name="paras"></param> /// <returns></returns> public static DataTable GetDataTable(string procName, SqlParameter[] paras = null) { Open(); SqlCommand command = new SqlCommand(procName, cnn); command.CommandType = CommandType.StoredProcedure; if (paras != null) { command.Parameters.AddRange(paras); } SqlDataAdapter adapter = new SqlDataAdapter(command); DataSet ds = new DataSet(); adapter.Fill(ds); Close(); return ds.Tables[0]; } /// <summary> /// 使用存儲過程執行增刪改 /// </summary> /// <param name="sql"></param> /// <param name="paras"></param> /// <returns></returns> public static int ExecuteNonQuery(string procName, SqlParameter[] paras) { Open(); SqlCommand command = new SqlCommand(procName, cnn); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddRange(paras); int result = command.ExecuteNonQuery(); Close(); return result; } } }SqlServer-DBHelperProc
MySql調用資料庫

using System; using System.Collections; using System.Collections.Specialized; using System.Data; using MySql.Data.MySqlClient; using System.Configuration; using System.Data.Common; using System.Collections.Generic; namespace Student_API.Controllers { /// <summary> /// 數據訪問抽象基礎類 /// Copyright (C) 2004-2008 By LiTianPing /// </summary> public abstract class DbHelperMySQL { //資料庫連接字元串(web.config來配置),可以動態更改connectionString支持多資料庫. public static string connectionString = "server=127.0.0.1;user id=root;pwd=root;database=06a_exam"; public DbHelperMySQL() { } #region 公用方法 /// <summary> /// 得到最大值 /// </summary> /// <param name="FieldName"></param> /// <param name="TableName"></param> /// <returns></returns> public static int GetMaxID(string FieldName, string TableName) { string strsql = "select max(" + FieldName + ")+1 from " + TableName; object obj = GetSingle(strsql); if (obj == null) { return 1; } else { return int.Parse(obj.ToString()); } } /// <summary> /// 是否存在 /// </summary> /// <param name="strSql"></param> /// <returns></returns> public static bool Exists(string strSql) { object obj = GetSingle(strSql); int cmdresult; if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { cmdresult = 0; } else { cmdresult = int.Parse(obj.ToString()); } if (cmdresult == 0) { return false; } else { return true; } } /// <summary> /// 是否存在(基於MySqlParameter) /// </summary> /// <param name="strSql"></param> /// <param name="cmdParms"></param> /// <returns></returns> public static bool Exists(string strSql, params MySqlParameter[] cmdParms) { object obj = GetSingle(strSql, cmdParms); int cmdresult; if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { cmdresult = 0; } else { cmdresult = int.Parse(obj.ToString()); } if (cmdresult == 0) { return false; } else { return true; } } #endregion #region 執行簡單SQL語句 /// <summary> /// 執行SQL語句,返回影響的記錄數 /// </summary> /// <param name="SQLString">SQL語句</param> /// <returns>影響的記錄數</returns> public static int ExecuteSql(string SQLString) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand(SQLString, connection)) { try { connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; } catch (MySql.Data.MySqlClient.MySqlException e) { connection.Close(); throw e; } } } } public static int ExecuteSqlByTime(string SQLString, int Times) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand(SQLString, connection)) { try { connection.Open(); cmd.CommandTimeout = Times; int rows = cmd.ExecuteNonQuery(); return rows; } catch (MySql.Data.MySqlClient.MySqlException e) { connection.Close(); throw e; } } } } /// <summary> /// 執行多條SQL語句,實現資料庫事務。 /// </summary> /// <param name="SQLStringList">多條SQL語句</param> public static int ExecuteSqlTran(List<String> SQLStringList) { using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = conn; MySqlTransaction tx = conn.BeginTransaction(); cmd.Transaction = tx; try { int count = 0; for (int n = 0; n < SQLStringList.Count; n++) { string strsql = SQLStringList[n]; if (strsql.Trim().Length > 1) { cmd.CommandText = strsql; count += cmd.ExecuteNonQuery(); } } tx.Commit(); return count; } catch { tx.Rollback(); return 0; } } } /// <summary> /// 執行帶一個存儲過程參數的的SQL語句。 /// </summary> /// <param name="SQLString">SQL語句</param> /// <param name="content">參數內容,比如一個欄位是格式複雜的文章,有特殊符號,可以通過這個方式添加</param> /// <returns>影響的記錄數</returns> public static int ExecuteSql(string SQLString, string content) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand cmd = new MySqlCommand(SQLString, connection); MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@content", SqlDbType.NText); myParameter.Value = content; cmd.Parameters.Add(myParameter); try { connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; } catch (MySql.Data.MySqlClient.MySqlException e) { throw e; } finally { cmd.Dispose(); connection.Close(); } } } /// <summary> /// 執行帶一個存儲過程參數的的SQL語句。 /// </summary> /// <param name="SQLString">SQL語句</param> /// <param name="content">參數內容,比如一個欄位是格式複雜的文章,有特殊符號,可以通過這個方式添加</param> /// <returns>影響的記錄數</returns> public static object ExecuteSqlGet(string SQLString, string content) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand cmd = new MySqlCommand(SQLString, connection); MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@content", SqlDbType.NText); myParameter.Value = content; cmd.Parameters.Add(myParameter); try { connection.Open(); object obj = cmd.ExecuteScalar(); if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { return null; } else { return obj; } } catch (MySql.Data.MySqlClient.MySqlException e) { throw e; } finally { cmd.Dispose(); connection.Close(); } } } /// <summary> /// 向資料庫里插入圖像格式的欄位(和上面情況類似的另一種實例) /// </summary> /// <param name="strSQL">SQL語句</param> /// <param name="fs">圖像位元組,資料庫的欄位類型為image的情況</param> /// <returns>影響的記錄數</returns> public static int ExecuteSqlInsertImg(string strSQL, byte[] fs) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { MySqlCommand cmd = new MySqlCommand(strSQL, connection); MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@fs", SqlDbType.Image); myParameter.Value = fs; cmd.Parameters.Add(myParameter); try { connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; } catch (MySql.Data.MySqlClient.MySqlException e) { throw e; } finally { cmd.Dispose(); connection.Close(); } } } /// <summary> /// 執行一條計算查詢結果語句,返回查詢結果(object)。 /// </summary> /// <param name="SQLString">計算查詢結果語句</param> /// <returns>查詢結果(object)</returns> public static object GetSingle(string SQLString) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand(SQLString, connection)) { try { connection.Open(); object obj = cmd.ExecuteScalar(); if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { return null; } else { return obj; } } catch (MySql.Data.MySqlClient.MySqlException e) { connection.Close(); throw e; } } } } public static object GetSingle(string SQLString, int Times) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { using (MySqlCommand cmd = new MySqlCommand(SQLString, connection)) { try { connection.Open(); cmd.CommandTimeout = Times; object obj = cmd.ExecuteScalar(); if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { return null; } else { return obj; } } catch (MySql.Data.MySqlClient.MySqlException e) { connection.Close(); throw e; } } } } /// <summary> /// 執行查詢語句,返回MySqlDataReader ( 註意:調用該方法後,一定要對MySqlDataReader進行Close ) /// </summary> /// <param name="strSQL">查詢語句</param> /// <returns>MySqlDataReader</returns> public static MySqlDataReader ExecuteReader(string strSQL) { MySqlConnection connection = new MySqlConnection(connectionString); MySqlCommand cmd = new MySqlCommand(strSQL, connection); try { connection.Open(); MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return myReader; } catch (MySql.Data.MySqlClient.MySqlException e) { throw e; } } /// <summary> /// 執行查詢語句,返回DataSet /// </summary> /// <param name="SQLString">查詢語句</param> /// <returns>DataSet</returns> public static DataSet Query(string SQLString) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { DataSet ds = new DataSet(); try { connection.Open(); MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection); command.Fill(ds, "ds"); } catch (MySql.Data.MySqlClient.MySqlException ex) { throw new Exception(ex.Message); } return ds; } } public static DataSet Query(string SQLString, int Times) { using (MySqlConnection connection = new MySqlConnection(connectionString)) { DataSet ds = new DataSet(); try { connection.Open(); MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection); command.SelectCommand.CommandTimeout = Times; command.Fill(ds, "ds"); } catch (MySql.Data.MySqlClient.MySqlException ex) { throw new Exception(ex.Message); } return ds; } } #endregion #region 執行帶參數的SQL語句 /// <summary> /// 執行SQL語句,返回影響的記錄數 /// </summary> /// <param name="SQLString">SQL語句</param> /// <returns>影響的記錄數</returns> public static int ExecuteSql(string SQLString, params MySqlParameter[] cmdParms) { using (MySqlConnection connection = new MySqlConnection(connectionString)) {