sqlserver连接字符串_【自学C#】|| 笔记 39 SQL server 连接数据库
一、ADO.NET數據庫操作? ?
????任何一個應用程序都離不開數據的存儲,數據可以在內存中存儲,但只能在程序運行時存取,無法持久保存。
????數據還可以在磁盤中以文件的形式存儲,但文件的管理和查找又十分煩瑣無法勝任大數量的存儲。
????將數據存儲到數據庫中是在應用程序中持久存儲數據的常用方式。
????在 C# 語言中提供了 ADO.NET 組件來實現連接數據庫以及操作數據庫中數據的功能。
????在 C#?語言中 ADO.NET 是在 ADO 的基礎上發展起來的,ADO (Active Data Object) 是一個 COM 組件類庫,用于訪問數據庫,而 ADO.NET 是在 .NET 平臺上訪問數據庫的組件。
??? ADO.NET 是以 ODBC (Open Database Connectivity) 技術的方式來訪問數據庫的一種技術。
??? ADO.NET 中的常用命名空間如下表所示。
| System.Data.SqlClient | Microsoft SQL Server |
| System.Data.Odbc? | ODBC |
| System.Data.OracleClient | Oracle |
| System.Data.OleDb | OLE DB |
????在使用 ADO.NET 進行數據庫操作時通常會用到 5 個類,分別是 Connection 類、 Command 類、DataReader 類、DataAdapter 類、DataSet 類。
????在接下來的講解中我們將以連接 SQL Server 為例介紹 ADO.NET 中的對象,引用的命名空間為 System.Data.SqlClient。
????除了 DataSet 類以外,其他對象的前面都加上 Sql,即 SqlConnection、SqlCommand、SqlDataReader、SqlDataAdapter。
1) Connection 類
????該類主要用于數據庫中建立連接和斷開連接的操作,并且能通過該類獲取當前數據庫連接的狀態。
????使用 Connection 類根據數據庫的連接串能連接任意數據庫,例如 SQLServer、Oracle、MySQL 等。
????但是在 .NET 平臺下,由于提供了一個 SQL Server 數據庫,并額外提供了一些操作菜單便于操作,所以推薦使用 SQLServer 數據庫。
2) Command 類
????該類主要對數據庫執行增加、刪除、修改以及查詢的操作。
????通過在 Command 類的對象中傳入不同的 SQL 語句,并調用相應的方法來執行 SQL 語句。
3) DataReader 類
????該類用于讀取從數據庫中查詢出來的數據,但在讀取數據時僅能向前讀不能向后讀, 并且不能修改該類對象中的值。
????在與數據庫的連接中斷時,該類對象中的值也隨之被清除。
4) DataAdapter 類
????該類與 DataSet 聯用,它主要用于將數據庫的結果運送到 DataSet 中保存。
??? DataAdapter 可以看作是數據庫與 DataSet 的一個橋梁,不僅可以將數據庫中的操作結果運送到 DataSet 中,也能將更改后的 DataSet 保存到數據庫中。
5) DataSet 類
????該類與 DataReader 類似,都用于存放對數據庫查詢的結果。
????不同的是,DataSet 類中的值不僅可以重復多次讀取,還可以通過更改 DataSet 中的值更改數據庫中的值。
????此外,DataSet 類中的值在數據庫斷開連接的情況下依然可以保留原來的值。
????(總之,又是好幾個類,并用于一個大型的數據集合,也就是所謂的數據庫了。)
二、Connection:連接數據庫
??? C#?語言中 Connection 類是 ADO.NET 組件連接數據庫時第一個要使用的類,也是通過編程訪問數據庫的第一步。
????接下來我們來了解一下 Connection 類中的常用屬性和方法,以及如何連接 SQL Server 數據庫。
????Connection 類概述
??? Connection 類根據要訪問的數據和訪問方式不同,使用的命名空間也不同,類名也稍有區別,在這里我們使用的是 SqlConnection 類,以及微軟提供的 SQL Server 2014 數據庫。
SqlConnection 類中提供的常用屬性和方法如下表所示。
| SqlConnection() | 無參構造方法 |
| SqlConnection(string connectionstring) | 帶參數的構造方法,數據庫連接字符串作為參數 |
| Connectionstring | 屬性,獲取或設置數據庫的連接串 |
| State | 屬性,獲取當前數據庫的狀態,由枚舉類型 Connectionstate 為其提供值 |
| ConnectionTimeout | 屬性,獲取在嘗試連接時終止嘗試并生成錯誤之前所等待的時間 |
| DataSource | 屬性,獲取要連接的 SQL Server 的實例名 |
| Open() | 方法,打開一個數據庫連接 |
| Close() | 方法,關閉數據庫連接 |
| BeginTransaction() | 方法,開始一個數據庫事務 |
????使用 Connection 類連接數據庫
????在使用 Connection 類連接 SQL Server 2014 時,先要編寫數據庫連接串。
????數據庫連接串的書寫方法有很多,這里介紹兩種常用的方法。
????第1種方式
????????server = 服務器名稱 / 數據庫的實例名 ; uid = 登錄名 ; pwd = 密碼 ; database = 數據庫名稱
????其中:
server:用于指定要訪問數據庫的數據庫實例名,服務器名稱可以換成 IP 地址或者數據庫所在的計算機名稱,如果訪問的是本機數據庫,則可以使用“.”來代替,如果使用的是默認的數據庫實例名,則可以省略數據庫實例名。例如連接的是本機的默認數據庫,則可以寫成“server = .”。
uid:登錄到指定 SQL Server 數據庫實例的用戶名,相當于以 SQL Server 身份驗證方式登錄數據庫時使用的用戶名,例如 sa 用戶。
pwd:與 uid 用戶對應的密碼。
database:要訪問數據庫實例下的數據庫名。
????
????第2種方式
????????Data Source = 服務器名稱 \ 數據庫實例名 ; Initial Catalog = 數據庫名稱 ; User ID = 用戶名 ; Password = 密碼
????其中:
Data Source:與第1種連接串寫法中的 server 屬性的寫法一樣,用于指定數據庫所在的服務器名稱和數據庫實例名,如果連接的是本機的默認數據庫實例,則寫成“Data Source=. ”的形式。
Initial Catalog:與第 1 種連接串寫法中的 database 屬性的寫法一樣,用于指定在 Data Source 中數據庫實例下的數據庫名。
User ID:與第 1 種連接串寫法中的 uid 屬性的寫法一樣,用于指定登錄數據庫的用戶名。
Password:與第 1 種連接串寫法中的 pwd 屬性的寫法一樣,用于指定 User ID 用戶名所對應的密碼。
????此外,還可以在連接字符串中使用 Integrate Security = True 的屬性,省略用戶名和密碼,即以 Windows 身份驗證方式登錄 SQL Server 數據庫。?將數據庫連接更改如下:
????????Data Source = 服務器名稱 \ 數據庫實例名 ; Initial Catalog = 數據庫名稱 ; Integrate Security = True
????需要注意的是,由于在使用 Windows 身份驗證的方式登錄數據庫時,會對數據庫的安全性造成一定的影響,因此不建議使用 Windows 身份驗證的方法,而是使用 SQL Server 驗證方式登錄數據庫,即指定用戶名和密碼。
三、使用 SqlConnection 類與數據庫連接
????在完成了數據庫連接串的編寫后即可使用 SqlConnection 類與數據庫連接,分以下 3 步完成。
????1) 創建 SqlConnection 類的實例
????對于 SqlConnection 類來說,上表中提供了兩個構造方法,通常是使用帶一個字符串參數的構造方法來設置數據庫的連接串創建其實例,語句形式如下。? ? ????
SqlConnection 連接對象名 = new SqlConnection( 數據庫連接串 );????2) 打開數據庫連接
????在創建 SqlConnection 連接類的實例后并沒有連接上數據庫,需要使用連接類的 Open 方法打開數據庫的連接。
????在使用 Open 方法打開數據庫連接時,如果數據庫的連接串不正確或者數據庫的服務處于關閉狀態,會出現打開數據庫失敗的相關異常,因此需要通過異常處理來處理異常。
????打開數據庫連接的語句形式如下。
????3) 關閉數據庫連接
????在對數據庫的操作結束后要將數據庫的連接斷開,以節省數據庫連接的資源。
????關閉數據庫連接的語句形式如下。
????如果在打開數據庫連接時使用了異常處理,則將關閉數據庫連接的語句放到異常處理的 finally 語句中,這樣能保證無論是否發生了異常都將數據庫連接斷開,以釋放資源。
????除了使用異常處理的方式釋放資源外,還可以使用 using 的方式釋放資源。
????具體的語句如下。
??? using 關鍵字的用法主要有兩個,一個是引用命名空間,一個是創建非托管資源對象。
????在 .NET 平臺上資源分為托管資源和非托管資源,托管資源是由 .NET 框架直接提供對其資源在內存中的管理,例如聲明的變量;非托管資源則不能直接由 .NET 框架對其管理,需要使用代碼來釋放資源,例如數據庫資源、操作系統資源等。
????1.例
????創建與本機 SQL Server 數據庫的連接,并使用異常處理。
????根據題目要求,連接 SQL Server 數據庫時使用的用戶名為 sa、密碼為 pwdpwd,連接的數據庫為test。
????創建 Windows 窗體應用程序,并在窗體上放置一個按鈕,在按鈕的單擊事件中加入以下代碼。
//編寫數據庫連接串string connStr = "Data source=.;Initial Catalog=test;User ID=sa;Password=pwdpwd";//創建SqlConnection的實例SqlConnection conn = null;try{ conn = new SqlConnection(connStr); //打開數據庫連接 conn.Open(); MessageBox.Show("數據庫連接成功!");}catch(Exception ex){ MessageBox.Show("數據庫連接失敗!" + ex.Message);}finally{ if (conn != null) { //關閉數據庫連接 conn.Close(); }}分析:
????首先是編寫數據庫連接串,
?????????就是上面的,使用 Connection 類連接數據庫。第2種方法。
????然后創建 SqlConnection 類的實例。
????????之所以先為空,是為了放進try中進行局部變量轉化。
????如果打開數據庫成功,就提示消息框提示。
????如果報錯,就提示數據庫連接失敗!消息框。
????最后如果數據庫不等于空,所以關閉數據庫連接.
運行結果:? ?
????????????2.例? ??
????在上一實例的基礎上使用 using 關鍵字釋放資源。
????根據題目要求,省略了 finally 部分的語句,代碼如下。
//編寫數據庫連接串string connStr = "Data source=.;Initial Catalog=test;User ID=sa;Password=pwdpwd";//創建SqlConnection的實例try{ using(SqlConnection conn=new SqlConnection(connStr)) { //打開數據庫連接 conn.Open(); MessageBox.Show("數據庫連接成功!"); }}catch(Exception ex){ MessageBox.Show("數據庫連接失敗!" + ex.Message);}分析:
????第6行,使用using關鍵字。
????????而 using 關鍵字的用法主要有兩個,一個是引用命名空間,一個是創建非托管資源對象。
????在 .NET 平臺上資源分為托管資源和非托管資源,托管資源是由 .NET 框架直接提供對其資源在內存中的管理,例如聲明的變量;非托管資源則不能直接由 .NET 框架對其管理,需要使用代碼來釋放資源,例如數據庫資源、操作系統資源等。
運行結果:? ?
????事實上,我并沒有連接到數據庫,所以導致了這個情況。
????之所以會這樣,是因為我在安裝數據庫時,并沒有SQL server身份驗證,而是Windows身份驗證,所以連接發生就屬于第2種下面的另一種。
以 Windows 身份驗證方式登錄 SQL Server 數據庫
????將數據庫連接更改如下:
????????Data Source = 服務器名稱 \ 數據庫實例名 ; Initial Catalog = 數據庫名稱 ; Integrate Security = True
四、SQL Server 數據庫安裝。(因為配置環境很重要)
??? 1.首先百度搜索安裝。
我下載的是這個
????2.找到這個
????????打開后是這個
????選擇安裝,并安裝右邊的第一個“全新SQL Server 獨立安裝或向現有安裝添加功能”。
????然后再點擊“安裝SQLServer管理工具”,跳轉頁面后,下載SSMS。
????????總之就是這兩個安裝包,并按照提示進行下一步安裝。
????????首先是SQL2019,安裝完后點擊自定義。
????????然后彈出這個:
然后進行下一步逐一安裝,唯一注意的是,“數據庫引擎配置”。
????因為上述表示,用Windows身份驗證模式不好,所以就用混合模式
不過我這里因為出現密碼設置過于簡單的提示,所以就暫時使用Windows身份驗證模式了。
然后就是下一步下一步。
然后再安裝:SSMS-Setup-CHS.exe,也就是數據庫管理工具。
安裝完后,在電腦菜單欄中找到這個,并打開。
????然后在菜單欄的文件-連接對象資源管理器。
????彈出這個
????服務器的名稱也就確定了。
????而我這時先使用Windows身份驗證進行登錄。
????然后是這樣的:
????右鍵這個,點屬性:
????在安全性中,切換“SQL Server和Windeos身份驗證模式”。
????然后打開數據庫-》安全性-》登錄名-》sa賬號,并雙擊。
????可修改密碼
并且點到狀態,激活啟動。
都設置完后,再點擊重啟一些數據庫。
然后就能使用sa賬戶訪問了。
????之后就是新建數據庫:
????????添加數據庫的名稱
然后在表中進行創建數據表。
列名:數據類型
????然后Ctrl+s保存,并刷新一下,找到保存的表,再填寫內容。
????右鍵-》編輯前200行,就可以添加了。
????添加內容元素,就可以在VS進行操作了。
????(大致就這些,雖然有些亂,不過熟悉了也就發現沒什么不同的。)
????首先就是下載軟件,SQL server數據庫,和管理工具。
????????(如果習慣代碼的話,也可以使用指令進行數據庫的創建,表的創建和錄入。這里暫時先不管了,以后再說。)
????然后就是配置身份驗證,初期不讓用sa,那就先Windows身份進入。
????????再通過“安全性”-》“登錄名”里啟動sa,并且修改密碼什么的,再重啟一下數據庫。
????最后就是創建數據庫,表的創建和數據錄入了。
????????也就是“數據庫”右鍵創建;
????????找到創建的數據庫名-》進入“表”,再右鍵創建保存。
????????然后刷新,否則看不到。
????????最后再找到表名,右鍵“編輯前200行”進行手動錄入。
????????????而表名-》右鍵“設計”,可以重新構建表的類型。
????基本上就是這些吧!然后就是注意數據類型,以及其他是否為空的條件,從而保證表的完整性,嚴謹性。
總結
以上是生活随笔為你收集整理的sqlserver连接字符串_【自学C#】|| 笔记 39 SQL server 连接数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql php 变量赋值,在MySQ
- 下一篇: c# 批量mqtt_C#使用 MQTTn