415
技術社區[雲棲]
<font color="red">[置頂]</font>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//引入兩個命名空間
using System.Data;
using System.Data.SqlClient;
namespace MyFriends
{
class DBHelper
{
//創建連接字符串
private const string connStr = @"Data Source=.;Initial Catalog=MySchool;Integrated Security=True";
/// <summary>
/// 查詢第一行第一列內容的通用方法(cmd.ExecuteScalar)
/// </summary>
/// <param name="sql">查詢用的sql</param>
/// <returns>第一行第一列內容,object通用類型:null(DB異常)、非null(DB無異常)</returns>
public object SelectOne(string sql)
{
//用來保存查詢結果的第一行第一列內容
object obj = null;
//創建連接
SqlConnection conn = new SqlConnection(connStr);
//創建cmd對象,用來執行命令
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
//打開連接
conn.Open();
//cmd執行查詢命令,並將第一行第一列內容保存到局部變量obj
obj = cmd.ExecuteScalar();
}
catch (Exception ex)
{
//輸出異常
Console.WriteLine(ex.Message);
}
finally
{
//關閉連接
conn.Close();
}
//返回局部變量obj
return obj;
}
/// <summary>
/// 查詢多行多列內容的通用方法(datareader)
/// </summary>
/// <param name="sql">查詢用的sql</param>
/// <returns>datareader對象:null(DB異常)、非null(DB無異常)</returns>
public SqlDataReader SelectAll(string sql)
{
//用來保存查詢結果,保存到dr中
SqlDataReader dr = null;
//創建連接
SqlConnection conn = new SqlConnection(connStr);
//創建cmd對象,用來執行命令
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
//打開連接
conn.Open();
//cmd執行查詢ExecuteReader命令,返回多行內容並保存到局部變量dr
//調用該方法的地方,如果關閉datareader,將同時關閉連接
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
//輸出異常
Console.WriteLine(ex.Message);
}
//返回局部變量dr
return dr;
}
/// <summary>
/// 增刪改的通用方法(cmd.ExecuteNonQuery)
/// </summary>
/// <param name="sql">增刪改用的sql</param>
/// <returns>受影響的行數:-1(DB異常)、0(增刪改失敗)、>0(增刪改成功)</returns>
public int Update(string sql)
{
//用來保存執行增刪改後受影響的行數
int result = -1;
//創建連接
SqlConnection conn = new SqlConnection(connStr);
//創建cmd對象,用來執行命令
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
//打開連接
conn.Open();
//cmd執行增刪改命令,並將受影響的行數保存到局部變量result
result = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
//輸出異常
Console.WriteLine(ex.Message);
}
finally
{
//關閉連接
conn.Close();
}
//返回局部變量result
return result;
}
//--------------------------------------------------------------------------------------
//用來保存查詢結果,保存到ds中
DataSet ds = null;
//通用的數據適配器da
SqlDataAdapter da = null;
/// <summary>
/// 查詢多行多列內容的通用方法(dataset)
/// </summary>
/// <param name="sql">查詢用的sql</param>
/// <param name="tableName">將數據放入ds中的該表</param>
/// <returns>dataset對象:null(DB異常)、非null(DB無異常)</returns>
public DataSet DSSelectAll(string sql,string tableName)
{
//創建連接
SqlConnection conn = new SqlConnection(connStr);
//初始化ds
ds = new DataSet();
try
{
//創建數據適配器da
da = new SqlDataAdapter(sql, conn);
//da填充數據集ds,將數據填充到ds的tableName表中
da.Fill(ds,tableName);
}
catch (Exception ex)
{
//輸出異常
Console.WriteLine(ex.Message);
}
//返回局部變量ds
return ds;
}
/// <summary>
/// 增刪改的通用方法(SqlCommandBuilder)
/// 注意:sql必須滿足單表+包含主鍵
/// </summary>
/// <param name="tableName">將ds中tableName表的數據更新到DB</param>
/// <returns>受影響的行數:-1(DB異常)、0(增刪改失敗)、>0(增刪改成功)</returns>
public int DSUpdate(string tableName)
{
//用來保存執行增刪改後受影響的行數
int result = -1;
try
{
//創建SqlCommandBuilder對象,已da作為參數
SqlCommandBuilder builder = new SqlCommandBuilder(da);
//將ds中tableName表的數據更新到DB
result=da.Update(ds, tableName);
}
catch (Exception ex)
{
//輸出異常
Console.WriteLine(ex.Message);
}
//返回局部變量result
return result;
}
}
}
最後更新:2017-04-03 14:53:53