C#如何實(shí)現(xiàn)對sql server數(shù)據(jù)庫的增刪改查
一個(gè)專門實(shí)現(xiàn)sql server數(shù)據(jù)庫的增刪改查,以及將查詢的結(jié)果返回成表格等功能,分享代碼如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;//第一步:引用與sql相關(guān)的命名空間
using System.Data;//引用表的命名空間
//行注釋 ///段落注釋
/// <summary>
///第二步: 把命名空間刪掉,使得我們在以后的開發(fā)中不用去創(chuàng)建一個(gè)sqlhelper類的對象和引用它的命名空間。實(shí)現(xiàn)直接調(diào)用
/// </summary>
//第三步:在class前面加上一個(gè)public 實(shí)現(xiàn)我們可以在dal的任何地方中去調(diào)用它。
//public 叫公共類 它的訪問權(quán)限是最大的。 如果在class前面加上了它的話,那么這個(gè)類我們可以在當(dāng)前的類庫中任意調(diào)用。
public class SqlHelper
{
//第四步:我們想要直接調(diào)用sqlHelper類,刪除命名空間是不夠的,我們還要把里面的方法和字段全部設(shè)置為靜態(tài)。
public static string connstr = "server=.;uid=sa;pwd=sa;database=rj1301";//公共的靜態(tài)的 連接字符串
public static int ExecuteScalar(string cmdText, params SqlParameter[] pms)
{
//params:不限長度的數(shù)組
//第一步:創(chuàng)建數(shù)據(jù)庫對象連接
SqlConnection conn = new SqlConnection(connstr);
//第二步:打開數(shù)據(jù)庫
conn.Open();
//第三步:創(chuàng)建數(shù)據(jù)庫命令對象和數(shù)據(jù)庫查詢語句
SqlCommand cmd = new SqlCommand(cmdText, conn);
//第四步:創(chuàng)建參數(shù)對象
//cmd.Parameters.Add(pms);//如果我們在這里直接放入pms數(shù)組,那么cmd添加進(jìn)去的都是SqlParameter,而不是具體的參數(shù)。
// int[] ii = new int[5] { 1,2,3,4,5 };
if (pms != null)
{
//for (int i = 0; i <pms.Length; i++)
//{
// if (pms[i]!=null)
// {
// cmd.Parameters.Add(pms[i]);
// }
//}
foreach (SqlParameter item in pms)//第一個(gè)參數(shù):你的數(shù)據(jù)類型 //第二個(gè)參數(shù)是值 //第三個(gè)參數(shù):in 在什么什么里面 //第四個(gè)參數(shù) 數(shù)組的名稱
{
if (item != null)
{
cmd.Parameters.Add(item);
}
}
}
//第五步:返回結(jié)果
int i = Convert.ToInt32(cmd.ExecuteScalar());
//第六步:關(guān)閉數(shù)據(jù)庫
conn.Close();
//第六步:把最終的結(jié)果返回到外面去
return i;
}
public static int ExecuteNonQuery(string cmdText, params SqlParameter[] pms)
{
//params:不限長度的數(shù)組
//第一步:創(chuàng)建數(shù)據(jù)庫對象連接
SqlConnection conn = new SqlConnection(connstr);
//第二步:打開數(shù)據(jù)庫
conn.Open();
//第三步:創(chuàng)建數(shù)據(jù)庫命令對象和數(shù)據(jù)庫查詢語句
SqlCommand cmd = new SqlCommand(cmdText, conn);
//第四步:創(chuàng)建參數(shù)對象
//cmd.Parameters.Add(pms);//如果我們在這里直接放入pms數(shù)組,那么cmd添加進(jìn)去的都是SqlParameter,而不是具體的參數(shù)。
// int[] ii = new int[5] { 1,2,3,4,5 };
if (pms != null)
{
//for (int i = 0; i <pms.Length; i++)
//{
// if (pms[i]!=null)
// {
// cmd.Parameters.Add(pms[i]);
// }
//}
foreach (SqlParameter item in pms)//第一個(gè)參數(shù):你的數(shù)據(jù)類型 //第二個(gè)參數(shù)是值 //第三個(gè)參數(shù):in 在什么什么里面 //第四個(gè)參數(shù) 數(shù)組的名稱
{
if (item != null)
{
cmd.Parameters.Add(item);
}
}
}
//第五步:返回結(jié)果
int i = Convert.ToInt32(cmd.ExecuteNonQuery());
//第六步:關(guān)閉數(shù)據(jù)庫
conn.Close();
//第六步:把最終的結(jié)果返回到外面去
return i;
}
//返回一張表
public static DataTable GetTable(string cmdText, params SqlParameter[] pms)
{
//params:不限長度的數(shù)組
//第一步:創(chuàng)建數(shù)據(jù)庫對象連接
SqlConnection conn = new SqlConnection(connstr);
//第二步:打開數(shù)據(jù)庫
conn.Open();
//第三步:創(chuàng)建數(shù)據(jù)庫命令對象和數(shù)據(jù)庫查詢語句
SqlCommand cmd = new SqlCommand(cmdText, conn);
//第四步:創(chuàng)建參數(shù)對象
//cmd.Parameters.Add(pms);//如果我們在這里直接放入pms數(shù)組,那么cmd添加進(jìn)去的都是SqlParameter,而不是具體的參數(shù)。
// int[] ii = new int[5] { 1,2,3,4,5 };
if (pms != null)
{
//for (int i = 0; i <pms.Length; i++)
//{
// if (pms[i]!=null)
// {
// cmd.Parameters.Add(pms[i]);
// }
//}
foreach (SqlParameter item in pms)//第一個(gè)參數(shù):你的數(shù)據(jù)類型 //第二個(gè)參數(shù)是值 //第三個(gè)參數(shù):in 在什么什么里面 //第四個(gè)參數(shù) 數(shù)組的名稱
{
if (item != null)
{
cmd.Parameters.Add(item);
}
}
}
//5. SqlDataAdapter是.net中用于存放數(shù)組庫里面取出來的數(shù) 相當(dāng)于我們現(xiàn)實(shí)生活中的容器
SqlDataAdapter sda = new SqlDataAdapter(cmd);
//6.去創(chuàng)建一個(gè)適配器 用來接受容器的
DataSet ds = new DataSet();
sda.Fill(ds,"aa");
conn.Close();
DataTable dt = ds.Tables["aa"];
return dt;
}
public static SqlDataReader GetReader(string cmdText, params SqlParameter[] pms)
{
SqlConnection conn = new SqlConnection(connstr);
//第二步:打開數(shù)據(jù)庫
conn.Open();
//第三步:創(chuàng)建數(shù)據(jù)庫命令對象和數(shù)據(jù)庫查詢語句
SqlCommand cmd = new SqlCommand(cmdText, conn);
//第四步:創(chuàng)建參數(shù)對象
//cmd.Parameters.Add(pms);//如果我們在這里直接放入pms數(shù)組,那么cmd添加進(jìn)去的都是SqlParameter,而不是具體的參數(shù)。
// int[] ii = new int[5] { 1,2,3,4,5 };
if (pms != null)
{
//for (int i = 0; i <pms.Length; i++)
//{
// if (pms[i]!=null)
// {
// cmd.Parameters.Add(pms[i]);
// }
//}
foreach (SqlParameter item in pms)//第一個(gè)參數(shù):你的數(shù)據(jù)類型 //第二個(gè)參數(shù)是值 //第三個(gè)參數(shù):in 在什么什么里面 //第四個(gè)參數(shù) 數(shù)組的名稱
{
if (item != null)
{
cmd.Parameters.Add(item);
}
}
}
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//把數(shù)據(jù)取出來以游標(biāo)的形式放入sdr
return sdr;
}
}以上就是對sql server數(shù)據(jù)庫的增刪改查的實(shí)現(xiàn)代碼,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
C#設(shè)計(jì)模式之ChainOfResponsibility職責(zé)鏈模式解決真假美猴王問題實(shí)例
這篇文章主要介紹了C#設(shè)計(jì)模式之ChainOfResponsibility職責(zé)鏈模式解決真假美猴王問題,簡單說明了責(zé)任鏈模式的概念,并結(jié)合《西游記》中真假美猴王故事背景為實(shí)例分析了責(zé)任鏈模式的具體使用技巧,需要的朋友可以參考下2017-09-09
在C#中創(chuàng)建和讀取XML文件的實(shí)現(xiàn)方法
項(xiàng)目中需要將前臺(tái)頁面中的信息保存下來并存儲(chǔ)為xml文件格式到數(shù)據(jù)庫中去。因此我先在這里通過一個(gè)小實(shí)例來學(xué)習(xí)xml的創(chuàng)建與讀取2013-09-09
動(dòng)態(tài)改變gridview列寬度函數(shù)分享
通常用GridView綁定datatable,由于需要?jiǎng)討B(tài)綁定到不同的datatable所以需要?jiǎng)討B(tài)調(diào)整GridView的寬度。寫了這個(gè)函數(shù)實(shí)現(xiàn)該功能2014-01-01
C#調(diào)用百度API實(shí)現(xiàn)活體檢測的方法
這篇文章主要給大家介紹了關(guān)于C#調(diào)用百度API實(shí)現(xiàn)活體檢測的方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
C#函數(shù)式編程中的遞歸調(diào)用之尾遞歸詳解
這篇文章主要介紹了C#函數(shù)式編程中的遞歸調(diào)用詳解,本文講解了什么是尾遞歸、尾遞歸的多種方式、尾遞歸的代碼實(shí)例等內(nèi)容,需要的朋友可以參考下2015-01-01

