Asp.net操作数据库方法
生活随笔
收集整理的這篇文章主要介紹了
Asp.net操作数据库方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;namespace DAL
{public class SQLHelper{//連接字符串static string strConn = ConfigurationManager.ConnectionStrings["connstr"].ToString();#region 執行查詢,返回DataTable對象-----------------------public static DataTable GetTable(string strSQL){return GetTable(strSQL, null);}public static DataTable GetTable(string strSQL, SqlParameter[] pas){return GetTable(strSQL, pas, CommandType.Text);}/// <summary>/// 執行查詢,返回DataTable對象/// </summary>/// <param name="strSQL">sql語句</param>/// <param name="pas">參數數組</param>/// <param name="cmdtype">Command類型</param>/// <returns>DataTable對象</returns>public static DataTable GetTable(string strSQL, SqlParameter[] pas, CommandType cmdtype){DataTable dt = new DataTable(); ;using (SqlConnection conn = new SqlConnection(strConn)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.SelectCommand.CommandType = cmdtype;if (pas != null){da.SelectCommand.Parameters.AddRange(pas);}da.Fill(dt);}return dt;}#endregion#region 執行查詢,返回DataSet對象-------------------------public static DataSet GetDataSet(string strSQL){return GetDataSet(strSQL, null);}public static DataSet GetDataSet(string strSQL, SqlParameter[] pas){return GetDataSet(strSQL, pas, CommandType.Text);}/// <summary>/// 執行查詢,返回DataSet對象/// </summary>/// <param name="strSQL">sql語句</param>/// <param name="pas">參數數組</param>/// <param name="cmdtype">Command類型</param>/// <returns>DataSet對象</returns>public static DataSet GetDataSet(string strSQL, SqlParameter[] pas, CommandType cmdtype){DataSet dt = new DataSet(); ;using (SqlConnection conn = new SqlConnection(strConn)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.SelectCommand.CommandType = cmdtype;if (pas != null){da.SelectCommand.Parameters.AddRange(pas);}da.Fill(dt);}return dt;}#endregion#region 執行非查詢存儲過程和SQL語句-----------------------------public static int ExcuteProc(string ProcName){return ExcuteSQL(ProcName, null, CommandType.StoredProcedure);}public static int ExcuteProc(string ProcName, SqlParameter[] pars){return ExcuteSQL(ProcName, pars, CommandType.StoredProcedure);}public static int ExcuteSQL(string strSQL){return ExcuteSQL(strSQL, null);}public static int ExcuteSQL(string strSQL, SqlParameter[] paras){return ExcuteSQL(strSQL, paras, CommandType.Text);}/// 執行非查詢存儲過程和SQL語句/// 增、刪、改/// </summary>/// <param name="strSQL">要執行的SQL語句</param>/// <param name="paras">參數列表,沒有參數填入null</param>/// <param name="cmdType">Command類型</param>/// <returns>返回影響行數</returns>public static int ExcuteSQL(string strSQL, SqlParameter[] paras, CommandType cmdType){int i = 0;using (SqlConnection conn = new SqlConnection(strConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();i = cmd.ExecuteNonQuery();conn.Close();}return i;}#endregion#region 執行查詢返回第一行,第一列---------------------------------public static int ExcuteScalarSQL(string strSQL){return ExcuteScalarSQL(strSQL, null);}public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras){return ExcuteScalarSQL(strSQL, paras, CommandType.Text);}public static int ExcuteScalarProc(string strSQL, SqlParameter[] paras){return ExcuteScalarSQL(strSQL, paras, CommandType.StoredProcedure);}/// <summary>/// 執行SQL語句,返回第一行,第一列/// </summary>/// <param name="strSQL">要執行的SQL語句</param>/// <param name="paras">參數列表,沒有參數填入null</param>/// <returns>返回影響行數</returns>public static int ExcuteScalarSQL(string strSQL, SqlParameter[] paras, CommandType cmdType){int i = 0;using (SqlConnection conn = new SqlConnection(strConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();i = Convert.ToInt32(cmd.ExecuteScalar());conn.Close();}return i;}#endregion#region 查詢獲取單個值------------------------------------/// <summary>/// 調用不帶參數的存儲過程獲取單個值/// </summary>/// <param name="ProcName"></param>/// <returns></returns>public static object GetObjectByProc(string ProcName){return GetObjectByProc(ProcName, null);}/// <summary>/// 調用帶參數的存儲過程獲取單個值/// </summary>/// <param name="ProcName"></param>/// <param name="paras"></param>/// <returns></returns>public static object GetObjectByProc(string ProcName, SqlParameter[] paras){return GetObject(ProcName, paras, CommandType.StoredProcedure);}/// <summary>/// 根據sql語句獲取單個值/// </summary>/// <param name="strSQL"></param>/// <returns></returns>public static object GetObject(string strSQL){return GetObject(strSQL, null);}/// <summary>/// 根據sql語句 和 參數數組獲取單個值/// </summary>/// <param name="strSQL"></param>/// <param name="paras"></param>/// <returns></returns>public static object GetObject(string strSQL, SqlParameter[] paras){return GetObject(strSQL, paras, CommandType.Text);}/// <summary>/// 執行SQL語句,返回首行首列/// </summary>/// <param name="strSQL">要執行的SQL語句</param>/// <param name="paras">參數列表,沒有參數填入null</param>/// <returns>返回的首行首列</returns>public static object GetObject(string strSQL, SqlParameter[] paras, CommandType cmdtype){object o = null;using (SqlConnection conn = new SqlConnection(strConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();o = cmd.ExecuteScalar();conn.Close();}return o;}#endregion#region 查詢獲取DataReader------------------------------------/// <summary>/// 調用不帶參數的存儲過程,返回DataReader對象/// </summary>/// <param name="procName">存儲過程名稱</param>/// <returns>DataReader對象</returns>public static SqlDataReader GetReaderByProc(string procName){return GetReaderByProc(procName, null);}/// <summary>/// 調用帶有參數的存儲過程,返回DataReader對象/// </summary>/// <param name="procName">存儲過程名</param>/// <param name="paras">參數數組</param>/// <returns>DataReader對象</returns>public static SqlDataReader GetReaderByProc(string procName, SqlParameter[] paras){return GetReader(procName, paras, CommandType.StoredProcedure);}/// <summary>/// 根據sql語句返回DataReader對象/// </summary>/// <param name="strSQL">sql語句</param>/// <returns>DataReader對象</returns>public static SqlDataReader GetReader(string strSQL){return GetReader(strSQL, null);}/// <summary>/// 根據sql語句和參數返回DataReader對象/// </summary>/// <param name="strSQL">sql語句</param>/// <param name="paras">參數數組</param>/// <returns>DataReader對象</returns>public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras){return GetReader(strSQL, paras, CommandType.Text);}/// <summary>/// 查詢SQL語句獲取DataReader/// </summary>/// <param name="strSQL">查詢的SQL語句</param>/// <param name="paras">參數列表,沒有參數填入null</param>/// <returns>查詢到的DataReader(關閉該對象的時候,自動關閉連接)</returns>public static SqlDataReader GetReader(string strSQL, SqlParameter[] paras, CommandType cmdtype){SqlDataReader sqldr = null;SqlConnection conn = new SqlConnection(strConn);SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();//CommandBehavior.CloseConnection的作用是如果關聯的DataReader對象關閉,則連接自動關閉sqldr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return sqldr;}#endregion#region 批量插入數據---------------------------------------------/// <summary>/// 往數據庫中批量插入數據/// </summary>/// <param name="sourceDt">數據源表</param>/// <param name="targetTable">服務器上目標表</param>public static void BulkToDB(DataTable sourceDt, string targetTable){SqlConnection conn = new SqlConnection(strConn);SqlBulkCopy bulkCopy = new SqlBulkCopy(conn); //用其它源的數據有效批量加載sql server表中bulkCopy.DestinationTableName = targetTable; //服務器上目標表的名稱bulkCopy.BatchSize = sourceDt.Rows.Count; //每一批次中的行數try{conn.Open();if (sourceDt != null && sourceDt.Rows.Count != 0)bulkCopy.WriteToServer(sourceDt); //將提供的數據源中的所有行復制到目標表中}catch (Exception ex){throw ex;}finally{conn.Close();if (bulkCopy != null)bulkCopy.Close();}}#endregion}
}
轉載于:https://www.cnblogs.com/lpfblog/p/6631586.html
總結
以上是生活随笔為你收集整理的Asp.net操作数据库方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL_17_点光源
- 下一篇: Linux inode与文件系统关系