using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
public static class DBTool
{
/// <summary>
/// 建立串連
/// </summary>
/// <returns>SqlConnection</returns>
public static SqlConnection GetConnection()
{
string connstr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; //從設定檔中擷取連接字串
SqlConnection conn = new SqlConnection(connstr);
return conn;
}
/// <summary>
/// 用於Select語句
/// </summary>
/// <param name="sql">sql語句</param>
/// <param name="parameters">查詢參數</param>
/// <returns>DataTable</returns>
public static DataTable GetDataTable(string sql, params SqlParameter[] parameters)
{
DataTable dt = new DataTable();
SqlConnection conn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(parameters);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt); //為dt填充資料
return dt;
}
//一個可以用於非Select語句的方法,主要用於insert,delete,update語句
/// <summary>
/// 用於Update,Insert,Delete語句
/// </summary>
/// <param name="sql">sql語句</param>
/// <param name="parameters">查詢參數</param>
/// <returns>Int32</returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
{
int i = 0;
using (SqlConnection conn = GetConnection())
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(parameters);
conn.Open();
i = cmd.ExecuteNonQuery();
}
return i;
}
/// <summary>
/// 讀取資料流中的資訊
/// </summary>
/// <param name="sql">sql語句</param>
/// <param name="parameters">查詢參數</param>
/// <returns>SqlDataReader</returns>
public static SqlDataReader ExecuteReader( string sql, params SqlParameter[] parameters)
{
SqlConnection conn = GetConnection();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
foreach (SqlParameter p in parameters)
{
cmd.Parameters.Add(p);
}
conn.Open();
SqlDataReader sdr = cmd.ExecuteReader(); //select, 返回結果集
return sdr;
}
}