.net中DBHelper(SqlServer版)


 

應用程序大多數都是需要與數據庫交互做為支撐的,那么相對數據庫的訪問方式就相當重要了,最基礎的是通過Ado的方式了;還有就是一些相對的ORM框架,如EF,Nhibernate等,后續加入; 相應的命名空間自己對應導入就可以

 提供一個web.config中的連接串或app.config

<connectionStrings>
<!--Oracle 連接串-->
<add name="oracleconn" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=ORCL)));User ID=scott;Password=tiger;Unicode=True" providerName="System.Data.OracleClient"/>
<!--sqlserver 連接串-->
<add name="ConstrSQL" connectionString="server=.\MSSQLSERVER1;database=數據庫名;uid=sa;pwd=*****;Integrated Security=False;Persist Security Info=False;" providerName="System.Data.Sqlclient"/>
</connectionStrings>

配置連接串要放到<configSections>后邊,至於那里你自己定

#region 其它幾種連接方式
//static string conner = @"Data Source=.\MSSQLSERVER1;Initial Catalog=數據庫名字;Persist Security Info=True;User ID=sa;pwd=***";
//static string conner = ConfigurationSettings.AppSettings["ConstrSQL"].ToString(); //ConfigurationSettings配置節點讀取
#endregion
static string conner = ConfigurationManager.ConnectionStrings["ConstrSQL"].ConnectionString; //ConnectionStrings配置文件讀取
private static SqlConnection con = new SqlConnection(conner);

#region 舊的
/// <summary>
/// 執行增刪改操作
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExexuteCommand(string sql)
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}

/// <summary>
/// 執行增刪改操作
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExexuteCommand(string sql, params SqlParameter[] para)
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
//將參數添加到參數集合中
cmd.Parameters.AddRange(para);
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}

/// <summary>
/// 返回dataReader的查詢方法
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string sql)
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
catch (Exception ex)
{
throw ex;
}
}

/// <summary>
/// 返回dataReader的查詢方法
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string sql, params SqlParameter[] para)
{
try
{
//if (con.State == ConnectionState.Closed)
//{
con.Open();
//}
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddRange(para);
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
catch (Exception ex)
{
throw ex;
}
}

/// <summary>
/// 返回dataTable的查詢方法
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataTable GetDateTable(string sql)
{
try
{
con.Open();
SqlDataAdapter myAdapter = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
myAdapter.Fill(ds);
return ds.Tables[0];
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}


/// <summary>
/// 返回dataTable的查詢方法
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataTable GetDateTable(string sql, params SqlParameter[] para)
{
try
{
con.Open();
//SqlDataAdapter myAdapter = new SqlDataAdapter(sql, con);
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddRange(para);
SqlDataAdapter myAdapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
myAdapter.Fill(ds);
return ds.Tables[0];
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}

/// <summary>
/// 返回單值的查詢方法
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object GetScalar(string sql)
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}


/// <summary>
/// 返回單值的查詢方法(有參數的查詢語句)
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object GetScalar(string sql, params SqlParameter[] para)
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.AddRange(para);
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}


#region 存儲過程調用方法
/// <summary>
/// 調用執行增刪改的有參數的存儲過程
/// </summary>
/// <param name="name"></param>
/// <param name="values"></param>
/// <returns></returns>
public static int ExectueCommandStoredProcedure(string name, params SqlParameter[] values)
{
//SqlConnection conn = new SqlConnection(connection);

try
{
//connection.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = name;
comm.Parameters.AddRange(values);
return comm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}
/// <summary>
/// 調用無參的存儲過程的方法
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static int ExectueCommandStoredProcedure(string name)
{

try
{
//connection.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = name;
//comm.Parameters.AddRange(values);
return comm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}
/// <summary>
/// 返回DataTable型的存儲過程的調用方法
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static DataTable GetTableByStoredProcedure(string name)
{

//SqlConnection conn = new SqlConnection(connection.ConnectionString);
try
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
DataSet ds = new DataSet();
SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = name;
SqlDataAdapter da = new SqlDataAdapter(comm);
ds.Clear();
da.Fill(ds);
return ds.Tables[0];
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}
/// <summary>
/// 返回DataTable型的存儲過程的調用方法(含參)
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static DataTable GetTableByStoredProcedure(string name, params SqlParameter[] valuse)
{
//SqlConnection conn = new SqlConnection(connection.ConnectionString);
try
{
if (con.State == ConnectionState.Closed)
{
con.Open();

}
//conn.Open();
DataSet ds = new DataSet();
SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = name;
comm.Parameters.AddRange(valuse);
SqlDataAdapter da = new SqlDataAdapter(comm);
da.Fill(ds);
return ds.Tables[0];
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}
/// <summary>
/// 返回reader型的無參的調用存儲過程的方法
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static SqlDataReader GetReaderByStoredProcedure(string name)
{
try
{

SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = name;


SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 返回reader型的(含參)的調用存儲過程的方法
/// </summary>
/// <param name="name"></param>
/// <param name="values"></param>
/// <returns></returns>
public static SqlDataReader GetReaderByStoredProcedure(string name, params SqlParameter[] values)
{
try
{
con.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = name;
comm.Parameters.AddRange(values);


SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 返回單值類型(無參)
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static Object GetScalarByStoredProcedure(string name)
{
try
{
con.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = name;

return comm.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}
/// <summary>
/// 返回單值類型(含參)
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static Object GetScalarByStoredProcedure(string name, params SqlParameter[] values)
{
try
{
con.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = name;
comm.Parameters.AddRange(values);

return comm.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
}
}
#endregion
#endregion


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM