C#連接SQL?Sever數(shù)據(jù)庫詳細圖文教程
一丶Sql Sever數(shù)據(jù)庫
獲取服務(wù)器名,用戶名,密碼以及你要訪問的數(shù)據(jù)庫
二丶C#
1.新建一個項目(控制臺應(yīng)用)
2. 引入相關(guān)命名空間
using System.Data; // 表的命名空間 using System.Data.SqlClient; // 和SQL相關(guān)的命名空間
3.訪問數(shù)據(jù)庫
我的數(shù)據(jù)庫的信息:
服務(wù)器名:DESKTOP-56DN3HD
登錄名:Csharp
密碼:123456
數(shù)據(jù)庫名:LibraryManagementSystem
方法一
// 聲明一個SqlConnectionStringBuilder對象 SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(); scsb.DataSource = "DESKTOP-56DN3HD"; // 設(shè)置數(shù)據(jù)源服務(wù)器 scsb.UserID = "Csharp"; // 設(shè)置用戶名 scsb.Password = "123456"; // 密碼 scsb.InitialCatalog = "LibraryManagementSystem"; // 設(shè)置要訪問的數(shù)據(jù)庫
方法二
"Data Source = (1); Database = (2); User Id = (3); Password = (4)"
(1)是數(shù)據(jù)源服務(wù)器
(2)是要訪問的數(shù)據(jù)庫 (Database改為Initial Catalog也可以)
(3)是用戶名
(4)是密碼
string ConStr = "Data Source = DESKTOP-56DN3HD; Database = LibraryManagementSystem;" + "User Id = Csharp; Password = 123456";
上面這種輸入用戶名和密碼的是使用了 SQL Server 身份驗證,如果要使用 windows 身份驗證,只需要將 “User Id = Csharp; Password = 123456” 改為 “Trusted_Connection = SSPI” 或 “Integrated Security = SSPI”
string ConnStr = "server = DESKTOP-56DN3HD; Database = LibraryManagementSystem;" +"Trusted_Connection = SSPI";
4.創(chuàng)建連接并打開數(shù)據(jù)庫
根據(jù)上面兩種方法不同創(chuàng)建連接的方法也不同
方法一
方法一的 scsb 由于不是string類型,所以需要使用ToString()方法
// 創(chuàng)建連接 SqlConnection SqlCon = new SqlConnection(scsb.ToString()); // 打開數(shù)據(jù)庫 SqlCon.Open();
方法二
方法二的 ConStr 可以直接作為參數(shù)傳進去
// 創(chuàng)建連接 SqlConnection SqlCon = new SqlConnection(ConStr); // 打開數(shù)據(jù)庫 SqlCon.Open();
打開數(shù)據(jù)庫的時候注意需要捕捉異常
try { sqlConnection.Open(); } catch(Exception ex) { Console.WriteLine(ex.Message); }
5.執(zhí)行SQL查詢語句
// 1、創(chuàng)建要執(zhí)行的SQL查詢語句 string find = "SELECT * FROM Table_User WHERE ID = '" + str + "'"; // 2、創(chuàng)建用于執(zhí)行SQL查詢語句的對象 SqlCommand cmd = new SqlCommand(find,SqlCon);//創(chuàng)建執(zhí)行語句// 參數(shù)1:SQL語句字符串。參數(shù)2:已經(jīng)打開的數(shù)據(jù)庫 // 3、執(zhí)行對象的SQL查詢語句并接受結(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è)置用戶名 scsb.Password = "123456"; // 密碼 scsb.InitialCatalog = "LibraryManagementSystem"; // 設(shè)置要訪問的數(shù)據(jù)庫 // 方法二 string ConStr = "Data Source = DESKTOP-56DN3HD; Database = LibraryManagementSystem;" + "User Id = Csharp; Password = 123456"; // 創(chuàng)建連接 SqlConnection SqlCon = new SqlConnection(scsb.ToString()); // 打開數(shù)據(jù)庫 SqlCon.Open(); if(SqlCon.State == ConnectionState.Open) { Console.WriteLine("數(shù)據(jù)庫已打開"); } Console.WriteLine("請輸入要查詢的編號"); string str = Console.ReadLine(); string find = "SELECT * FROM Table_User WHERE ID = '" + str + "'"; //sql查詢語句 SqlCommand cmd = new SqlCommand(find,SqlCon);//創(chuàng)建執(zhí)行語句 SqlDataReader dr = cmd.ExecuteReader();//執(zhí)行 while(dr.Read()) { Console.WriteLine("ID: " + dr["ID"].ToString()); Console.WriteLine("name: " + dr["name"].ToString()); } // 關(guān)閉數(shù)據(jù)庫 SqlCon.Close(); if (SqlCon.State == ConnectionState.Closed) { Console.WriteLine("數(shù)據(jù)庫已關(guān)閉"); } Console.ReadKey(); } } }
四丶常用語句
1、設(shè)置連接字符串
string sqlConnStr = "Data Source=服務(wù)器名;Initial Catalog=數(shù)據(jù)庫名;User ID=用戶名;Password=密碼";//用戶密碼登錄 //或 string sqlConnStr = "Data Source=服務(wù)器名;Initial Catalog=數(shù)據(jù)庫名;Integrated Security=true;//主機用戶登錄 IntegratedSecurity這個字段表示是否使用用戶名密碼登錄
2、獲取數(shù)據(jù)庫連接
using System.Data.SqlClient; SqlConnection sqlConnection = new SqlConnection(sqlConnStr);
3、打開數(shù)據(jù)庫連接
try { sqlConnection.Open(); } catch(Exception ex) { Console.WriteLine(ex.Message); }
打開數(shù)據(jù)庫的時候注意需要捕捉異常
4、進行SQL語句執(zhí)行
4.1、獲取count計數(shù)
string sql = "select 1"; SqlCommand cmd = new SqlCommand();//創(chuàng)建SQL語句處理對象 //或SqlCommand cmd = new SqlCommand(sql,sqlConnection);//構(gòu)造函數(shù)綁定 cmd.Connection = sqlConnection;//綁定連接 cmd.CommandText = sql;//綁定SQL語句 int count = (int)cmd.ExecuteScalar();
ExecuteScalar() : 作用是獲取返回表上的第一個單元格的數(shù)據(jù)
4.2、獲取多列數(shù)據(jù)ExecuteReader()
string sql = "select 1,2,3"; //省略綁定 SqlDataReader sqlDataReader = cmd.ExecuteReader();//數(shù)據(jù)對象 while (sqlDataReader.Read())//read方法 :前進到下一條記錄 并且是否有下一行記錄 { int a =(int)sqlDataReader[0]; int a =(int)sqlDataReader[1]; int a =(int) sqlDataReader[2];//索引從0開始,按單元格檢索 // int a = sqlDataReader["字段名"];使用數(shù)據(jù)庫中的字段名同樣可以 }
ExecuteReader() : 執(zhí)行SQL 語句返回一個sqlDataReader傳遞數(shù)據(jù)
4.3、執(zhí)行增刪改操作ExecuteNonQuery()
string sql = delete from [數(shù)據(jù)庫]; //省略綁定步驟 int line = cmd.ExecuteNonQuery();//返回記錄更改的行數(shù)
5、關(guān)閉連接或者流
if (sqlDataReader != null) { sqlDataReader.Close(); } if (cmd != null) { cmd.Dispose(); } if (sqlConnection != null) { sqlConnection.Close(); }
五丶常用SQL語句
1、增
insert into [表名](字段1,字段2···) values(值1,值2···);
2、刪
delete from [表名] where [條件]
3、改
update [表名] set 字段名 = 值 ,第二個修改 where [條件]
4、查
select * from [數(shù)據(jù)庫] where [字段名] = 值;
總結(jié)
到此這篇關(guān)于C#連接SQL Sever數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)C#連接SQLSever數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#中的interface abstract與virtual介紹
abstract 與virtual : 方法重寫時都使用 override 關(guān)鍵字,interface中的方法和abstract方法都要求實現(xiàn)2013-07-07C#值類型、引用類型、泛型、集合、調(diào)用函數(shù)的表達式樹實踐
本文詳細講解了C#值類型、引用類型、泛型、集合、調(diào)用函數(shù)的表達式樹實踐,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01C#使用System.Net庫實現(xiàn)自動發(fā)送郵件功能
在C#編程環(huán)境中,實現(xiàn)郵件發(fā)送功能是一項常見的需求,無論是Web應(yīng)用程序還是Windows窗體應(yīng)用程序,下面小編就來為大家講講如何使用System.Net庫實現(xiàn)這一功能吧2025-03-03