通過瀏覽器訪問數(shù)據(jù)庫_SQL Server 數(shù)據(jù)庫訪問通用類(更新)
本文關(guān)鍵詞:數(shù)據(jù)庫訪問,由筆耕文化傳播整理發(fā)布。
對SQL Server數(shù)據(jù)庫的操作,最常見的有如下五種:
1.非連接式查詢,獲取DataTable。
2.連接式查詢,獲取DataReader。
3.查詢結(jié)果只有1行1列,獲取單一數(shù)據(jù)。
4.對數(shù)據(jù)庫進行增、刪、改操作,進行數(shù)據(jù)編輯。
5.判斷與數(shù)據(jù)庫是否已連接。(更新)
針對以上情況,分享的一個SQL Server數(shù)據(jù)庫訪問通用類。該通用類可用于ASP.NET和C/S系統(tǒng)中開發(fā)。
1.非連接式查詢,獲取DataTable。
利用SqlDataAdapter對象的Fill()返回DataTable的結(jié)果集。
View Code
#region 執(zhí)行一個查詢,并返回結(jié)果集 執(zhí)行一個查詢,并返回結(jié)果集 DataTable ExecuteDataTable(string sql) { return ExecuteDataTable(sql, CommandType.Text, null); } 執(zhí)行一個查詢,并返回結(jié)果集 DataTable ExecuteDataTable(string sql, CommandType commandType) { return ExecuteDataTable(sql, commandType, null); } 執(zhí)行一個查詢,并返回結(jié)果集 DataTable ExecuteDataTable(string sql, CommandType commandType, SqlParameter[] parameters) { //實例化DataTable,用于裝載查詢結(jié)果集 DataTable data = new DataTable(); using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(sql, connection)) { //指定CommandType command.CommandType = commandType; if (parameters != null) { foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } } //實例化SqlDataAdapter SqlDataAdapter adapter = new SqlDataAdapter(command); //填充DataTable adapter.Fill(data); } } return data; } #endregion
2.連接式查詢,獲取DataReader。
利用SqlReader()返回DataReader對象實例。
View Code
#region 返回一個DataReader對象實例 返回一個DataReader對象實例 SqlDataReader ExecuteReader(string sql) { return ExecuteReader(sql, CommandType.Text, null); } 返回一個DataReader對象實例 SqlDataReader ExecuteReader(string sql, CommandType commandType) { return ExecuteReader(sql, commandType, null); } 返回一個DataReader對象實例 SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters) { SqlConnection connection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(sql, connection); if (parameters != null) { foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } } connection.Open(); command.ExecuteReader(CommandBehavior.CloseConnection); } #endregion
3.查詢結(jié)果只有1行1列,獲取單一數(shù)據(jù)。
利用SqlCommand的ExecuteScalar()。
View Code
#region 執(zhí)行查詢結(jié)果,返回第一行的第一列 執(zhí)行查詢結(jié)果,返回第一行的第一列 ExecuteScalar(string sql) { return ExecuteScalar(sql, CommandType.Text, null); } 執(zhí)行查詢結(jié)果,返回第一行的第一列 ExecuteScalar(string sql, CommandType commandType) { return ExecuteScalar(sql, commandType, null); } 執(zhí)行查詢結(jié)果,返回第一行的第一列 ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters) { object result = null; using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(sql, connection)) { command.CommandType = commandType; if (parameters != null) { foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } } connection.Open(); result = command.ExecuteScalar(); } } return result; } #endregion
4.對數(shù)據(jù)庫進行增、刪、改操作,,進行數(shù)據(jù)編輯。
利用ExecuteNonQuery()。
View Code
#region 對數(shù)據(jù)庫進行增刪改操作 對數(shù)據(jù)庫進行增刪改操作 ExecuteNonQuery(string sql) { return ExecuteNonQuery(sql, CommandType.Text, null); } 對數(shù)據(jù)庫進行增刪改操作 ExecuteNonQuery(string sql, CommandType commandType) { return ExecuteNonQuery(sql, commandType, null); } 對數(shù)據(jù)庫進行增刪改操作 ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters) { int count = 0; using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(sql, connection)) { command.CommandType = commandType; if (parameters != null) { foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } } connection.Open(); count = command.ExecuteNonQuery(); } } return count; } #endregion
5.判斷與數(shù)據(jù)庫是否連接(更新)
View Code
#region 判斷數(shù)據(jù)庫是否連接 判斷數(shù)據(jù)庫是否連接 IsConnected() { SqlConnection connection = new SqlConnection(connectionString); try { if (connection.State != ConnectionState.Open) { connection.Open(); } return true; } catch { return false; } } #endregion
該類全部代碼
View Code
using System; using System.Data; using System.Data.SqlClient; using System.Configuration; SqlDbHelper:操作SQL Server數(shù)據(jù)庫的通用類 /// 作者:李寶亨 /// 日期:2012-03-15 /// Version:1.0 SqlDbHelper { #region 字段 私有字段 connectionString; #endregion #region 屬性 公共屬性 數(shù)據(jù)庫連接字符串 ConnectiongString { set { connectionString = value; } } #endregion #region 構(gòu)造函數(shù) 構(gòu)造函數(shù) SqlDbHelper() { //修改connectionString為項目中的數(shù)據(jù)庫連接字符串 //connectionString=""; } 構(gòu)造函數(shù) SqlDbHelper(string strConnectionString) { connectionString = strConnectionString; } #endregion #region 判斷數(shù)據(jù)庫是否連接 判斷數(shù)據(jù)庫是否連接 IsConnected() { SqlConnection connection = new SqlConnection(connectionString); try { if (connection.State != ConnectionState.Open) { connection.Open(); } return true; } catch { return false; } } #endregion #region 執(zhí)行一個查詢,并返回結(jié)果集 執(zhí)行一個查詢,并返回結(jié)果集 DataTable ExecuteDataTable(string sql) { return ExecuteDataTable(sql, CommandType.Text, null); } 執(zhí)行一個查詢,并返回結(jié)果集 DataTable ExecuteDataTable(string sql, CommandType commandType) { return ExecuteDataTable(sql, commandType, null); } 執(zhí)行一個查詢,并返回結(jié)果集 DataTable ExecuteDataTable(string sql, CommandType commandType, SqlParameter[] parameters) { //實例化DataTable,用于裝載查詢結(jié)果集 DataTable data = new DataTable(); using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(sql, connection)) { //指定CommandType command.CommandType = commandType; if (parameters != null) { foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } } //實例化SqlDataAdapter SqlDataAdapter adapter = new SqlDataAdapter(command); //填充DataTable adapter.Fill(data); } } return data; } #endregion #region 返回一個DataReader對象實例 返回一個DataReader對象實例 SqlDataReader ExecuteReader(string sql) { return ExecuteReader(sql, CommandType.Text, null); } 返回一個DataReader對象實例 SqlDataReader ExecuteReader(string sql, CommandType commandType) { return ExecuteReader(sql, commandType, null); } 返回一個DataReader對象實例 SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters) { SqlConnection connection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(sql, connection); if (parameters != null) { foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } } connection.Open(); command.ExecuteReader(CommandBehavior.CloseConnection); } #endregion #region 執(zhí)行查詢結(jié)果,返回第一行的第一列 執(zhí)行查詢結(jié)果,返回第一行的第一列 ExecuteScalar(string sql) { return ExecuteScalar(sql, CommandType.Text, null); } 執(zhí)行查詢結(jié)果,返回第一行的第一列 ExecuteScalar(string sql, CommandType commandType) { return ExecuteScalar(sql, commandType, null); } 執(zhí)行查詢結(jié)果,返回第一行的第一列 ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters) { object result = null; using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(sql, connection)) { command.CommandType = commandType; if (parameters != null) { foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } } connection.Open(); result = command.ExecuteScalar(); } } return result; } #endregion #region 對數(shù)據(jù)庫進行增刪改操作 對數(shù)據(jù)庫進行增刪改操作 ExecuteNonQuery(string sql) { return ExecuteNonQuery(sql, CommandType.Text, null); } 對數(shù)據(jù)庫進行增刪改操作 ExecuteNonQuery(string sql, CommandType commandType) { return ExecuteNonQuery(sql, commandType, null); } 對數(shù)據(jù)庫進行增刪改操作 ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters) { int count = 0; using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(sql, connection)) { command.CommandType = commandType; if (parameters != null) { foreach (SqlParameter parameter in parameters) { command.Parameters.Add(parameter); } } connection.Open(); count = command.ExecuteNonQuery(); } } return count; } #endregion }
點此下載SqlDbHelper.cs
感謝@酷小孩和各位園友的指正和支持,代碼已修正!
本文關(guān)鍵詞:數(shù)據(jù)庫訪問,由筆耕文化傳播整理發(fā)布。
本文編號:191668
本文鏈接:http://sikaile.net/wenshubaike/xxkj/191668.html