C#連接SQL?Sever數(shù)據(jù)庫(kù)詳細(xì)圖文教程
一丶Sql Sever數(shù)據(jù)庫(kù)

獲取服務(wù)器名,用戶(hù)名,密碼以及你要訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)
二丶C#
1.新建一個(gè)項(xiàng)目(控制臺(tái)應(yīng)用)

2. 引入相關(guān)命名空間
using System.Data; // 表的命名空間 using System.Data.SqlClient; // 和SQL相關(guān)的命名空間
3.訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)
我的數(shù)據(jù)庫(kù)的信息:
服務(wù)器名:DESKTOP-56DN3HD
登錄名:Csharp
密碼:123456
數(shù)據(jù)庫(kù)名:LibraryManagementSystem
方法一
// 聲明一個(gè)SqlConnectionStringBuilder對(duì)象 SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(); scsb.DataSource = "DESKTOP-56DN3HD"; // 設(shè)置數(shù)據(jù)源服務(wù)器 scsb.UserID = "Csharp"; // 設(shè)置用戶(hù)名 scsb.Password = "123456"; // 密碼 scsb.InitialCatalog = "LibraryManagementSystem"; // 設(shè)置要訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)
方法二
"Data Source = (1); Database = (2); User Id = (3); Password = (4)"
(1)是數(shù)據(jù)源服務(wù)器
(2)是要訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù) (Database改為Initial Catalog也可以)
(3)是用戶(hù)名
(4)是密碼
string ConStr = "Data Source = DESKTOP-56DN3HD; Database = LibraryManagementSystem;"
+ "User Id = Csharp; Password = 123456";上面這種輸入用戶(hù)名和密碼的是使用了 SQL Server 身份驗(yàn)證,如果要使用 windows 身份驗(yàn)證,只需要將 “User Id = Csharp; Password = 123456” 改為 “Trusted_Connection = SSPI” 或 “Integrated Security = SSPI”
string ConnStr = "server = DESKTOP-56DN3HD; Database = LibraryManagementSystem;" +"Trusted_Connection = SSPI";
4.創(chuàng)建連接并打開(kāi)數(shù)據(jù)庫(kù)
根據(jù)上面兩種方法不同創(chuàng)建連接的方法也不同
方法一
方法一的 scsb 由于不是string類(lèi)型,所以需要使用ToString()方法
// 創(chuàng)建連接 SqlConnection SqlCon = new SqlConnection(scsb.ToString()); // 打開(kāi)數(shù)據(jù)庫(kù) SqlCon.Open();
方法二
方法二的 ConStr 可以直接作為參數(shù)傳進(jìn)去
// 創(chuàng)建連接 SqlConnection SqlCon = new SqlConnection(ConStr); // 打開(kāi)數(shù)據(jù)庫(kù) SqlCon.Open();
打開(kāi)數(shù)據(jù)庫(kù)的時(shí)候注意需要捕捉異常
try
{
sqlConnection.Open();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}5.執(zhí)行SQL查詢(xún)語(yǔ)句
// 1、創(chuàng)建要執(zhí)行的SQL查詢(xún)語(yǔ)句
string find = "SELECT * FROM Table_User WHERE ID = '" + str + "'";
// 2、創(chuàng)建用于執(zhí)行SQL查詢(xún)語(yǔ)句的對(duì)象
SqlCommand cmd = new SqlCommand(find,SqlCon);//創(chuàng)建執(zhí)行語(yǔ)句// 參數(shù)1:SQL語(yǔ)句字符串。參數(shù)2:已經(jīng)打開(kāi)的數(shù)據(jù)庫(kù)
// 3、執(zhí)行對(duì)象的SQL查詢(xún)語(yǔ)句并接受結(jié)果
SqlDataReader dr = cmd.ExecuteReader();//執(zhí)行
// 4、讀取結(jié)果的數(shù)據(jù)
while(dr.Read())
{
Console.WriteLine("ID: " + dr["ID"].ToString());
Console.WriteLine("name: " + dr["name"].ToString());
}三丶源碼
using System;
using System.Data; // 表的命名空間
using System.Data.SqlClient; // 和SQL相關(guān)的命名空間
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
// 方法一
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
scsb.DataSource = "DESKTOP-56DN3HD"; // 設(shè)置數(shù)據(jù)源服務(wù)器
scsb.UserID = "Csharp"; // 設(shè)置用戶(hù)名
scsb.Password = "123456"; // 密碼
scsb.InitialCatalog = "LibraryManagementSystem"; // 設(shè)置要訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)
// 方法二
string ConStr = "Data Source = DESKTOP-56DN3HD; Database = LibraryManagementSystem;"
+ "User Id = Csharp; Password = 123456";
// 創(chuàng)建連接
SqlConnection SqlCon = new SqlConnection(scsb.ToString());
// 打開(kāi)數(shù)據(jù)庫(kù)
SqlCon.Open();
if(SqlCon.State == ConnectionState.Open)
{
Console.WriteLine("數(shù)據(jù)庫(kù)已打開(kāi)");
}
Console.WriteLine("請(qǐng)輸入要查詢(xún)的編號(hào)");
string str = Console.ReadLine();
string find = "SELECT * FROM Table_User WHERE ID = '" + str + "'";
//sql查詢(xún)語(yǔ)句
SqlCommand cmd = new SqlCommand(find,SqlCon);//創(chuàng)建執(zhí)行語(yǔ)句
SqlDataReader dr = cmd.ExecuteReader();//執(zhí)行
while(dr.Read())
{
Console.WriteLine("ID: " + dr["ID"].ToString());
Console.WriteLine("name: " + dr["name"].ToString());
}
// 關(guān)閉數(shù)據(jù)庫(kù)
SqlCon.Close();
if (SqlCon.State == ConnectionState.Closed)
{
Console.WriteLine("數(shù)據(jù)庫(kù)已關(guān)閉");
}
Console.ReadKey();
}
}
}四丶常用語(yǔ)句
1、設(shè)置連接字符串
string sqlConnStr = "Data Source=服務(wù)器名;Initial Catalog=數(shù)據(jù)庫(kù)名;User ID=用戶(hù)名;Password=密碼";//用戶(hù)密碼登錄 //或 string sqlConnStr = "Data Source=服務(wù)器名;Initial Catalog=數(shù)據(jù)庫(kù)名;Integrated Security=true;//主機(jī)用戶(hù)登錄 IntegratedSecurity這個(gè)字段表示是否使用用戶(hù)名密碼登錄
2、獲取數(shù)據(jù)庫(kù)連接
using System.Data.SqlClient; SqlConnection sqlConnection = new SqlConnection(sqlConnStr);
3、打開(kāi)數(shù)據(jù)庫(kù)連接
try
{
sqlConnection.Open();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}打開(kāi)數(shù)據(jù)庫(kù)的時(shí)候注意需要捕捉異常
4、進(jìn)行SQL語(yǔ)句執(zhí)行
4.1、獲取count計(jì)數(shù)
string sql = "select 1"; SqlCommand cmd = new SqlCommand();//創(chuàng)建SQL語(yǔ)句處理對(duì)象 //或SqlCommand cmd = new SqlCommand(sql,sqlConnection);//構(gòu)造函數(shù)綁定 cmd.Connection = sqlConnection;//綁定連接 cmd.CommandText = sql;//綁定SQL語(yǔ)句 int count = (int)cmd.ExecuteScalar();
ExecuteScalar() : 作用是獲取返回表上的第一個(gè)單元格的數(shù)據(jù)
4.2、獲取多列數(shù)據(jù)ExecuteReader()
string sql = "select 1,2,3";
//省略綁定
SqlDataReader sqlDataReader = cmd.ExecuteReader();//數(shù)據(jù)對(duì)象
while (sqlDataReader.Read())//read方法 :前進(jìn)到下一條記錄 并且是否有下一行記錄
{
int a =(int)sqlDataReader[0];
int a =(int)sqlDataReader[1];
int a =(int) sqlDataReader[2];//索引從0開(kāi)始,按單元格檢索
// int a = sqlDataReader["字段名"];使用數(shù)據(jù)庫(kù)中的字段名同樣可以
}ExecuteReader() : 執(zhí)行SQL 語(yǔ)句返回一個(gè)sqlDataReader傳遞數(shù)據(jù)
4.3、執(zhí)行增刪改操作ExecuteNonQuery()
string sql = delete from [數(shù)據(jù)庫(kù)]; //省略綁定步驟 int line = cmd.ExecuteNonQuery();//返回記錄更改的行數(shù)
5、關(guān)閉連接或者流
if (sqlDataReader != null)
{
sqlDataReader.Close();
}
if (cmd != null)
{
cmd.Dispose();
}
if (sqlConnection != null)
{
sqlConnection.Close();
}五丶常用SQL語(yǔ)句
1、增
insert into [表名](字段1,字段2···) values(值1,值2···);
2、刪
delete from [表名] where [條件]
3、改
update [表名] set 字段名 = 值 ,第二個(gè)修改 where [條件]
4、查
select * from [數(shù)據(jù)庫(kù)] where [字段名] = 值;
總結(jié)
到此這篇關(guān)于C#連接SQL Sever數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)C#連接SQLSever數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用(3) 文本消息和圖文消息應(yīng)答
這篇文章主要為大家詳細(xì)介紹了C#開(kāi)發(fā)微信門(mén)戶(hù)及應(yīng)用第二篇,微信文本消息和圖文消息的應(yīng)答,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
C#數(shù)據(jù)庫(kù)連接方式(類(lèi)的形式)
這篇文章主要介紹了C#數(shù)據(jù)庫(kù)連接方式(類(lèi)的形式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
基于C#編寫(xiě)一個(gè)遠(yuǎn)程桌面應(yīng)用
封閉環(huán)境無(wú)法拷貝外來(lái)的遠(yuǎn)程桌面軟件,所以這篇文章小編就來(lái)帶大家用C#編寫(xiě)一個(gè)簡(jiǎn)單的遠(yuǎn)程桌面應(yīng)用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
C#中HslCommunication庫(kù)的實(shí)現(xiàn)示例
C# HslCommunication庫(kù)是一個(gè)用于建立TCP連接并進(jìn)行Modbus通訊的庫(kù),使用該庫(kù)可以方便地建立TCP連接,并進(jìn)行讀寫(xiě)操作,下面就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下2025-12-12
C#實(shí)現(xiàn)獲取Excel中圖片所在坐標(biāo)位置
本文以C#和vb.net代碼示例展示如何來(lái)獲取Excel工作表中圖片的坐標(biāo)位置,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-04-04
C#實(shí)現(xiàn)如何使用短信平臺(tái)自動(dòng)通知用戶(hù)實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)如何使用短信平臺(tái)自動(dòng)通知用戶(hù)實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
Unity實(shí)現(xiàn)卡牌翻動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)卡牌翻動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
C#實(shí)現(xiàn)將PDF轉(zhuǎn)為線(xiàn)性化PDF
線(xiàn)性化PDF文件是PDF文件的一種特殊格式,可以通過(guò)Internet更快地進(jìn)行查看。這篇文章主要介紹了如何通過(guò)C#實(shí)現(xiàn)將PDF轉(zhuǎn)為線(xiàn)性化PDF,感興趣的小伙伴可以學(xué)習(xí)一下2021-12-12

