日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

sqlserver连接字符串_【自学C#】|| 笔记 39 SQL server 连接数据库

發(fā)布時間:2025/3/15 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqlserver连接字符串_【自学C#】|| 笔记 39 SQL server 连接数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、ADO.NET數(shù)據(jù)庫操作? ?

????任何一個應(yīng)用程序都離不開數(shù)據(jù)的存儲,數(shù)據(jù)可以在內(nèi)存中存儲,但只能在程序運(yùn)行時存取,無法持久保存。

????數(shù)據(jù)還可以在磁盤中以文件的形式存儲,但文件的管理和查找又十分煩瑣無法勝任大數(shù)量的存儲。

????將數(shù)據(jù)存儲到數(shù)據(jù)庫中是在應(yīng)用程序中持久存儲數(shù)據(jù)的常用方式。

????在 C# 語言中提供了 ADO.NET 組件來實現(xiàn)連接數(shù)據(jù)庫以及操作數(shù)據(jù)庫中數(shù)據(jù)的功能。

????在 C#?語言中 ADO.NET 是在 ADO 的基礎(chǔ)上發(fā)展起來的,ADO (Active Data Object) 是一個 COM 組件類庫,用于訪問數(shù)據(jù)庫,而 ADO.NET 是在 .NET 平臺上訪問數(shù)據(jù)庫的組件。
??? ADO.NET 是以 ODBC (Open Database Connectivity) 技術(shù)的方式來訪問數(shù)據(jù)庫的一種技術(shù)。
??? ADO.NET 中的常用命名空間如下表所示。

命名空間數(shù)據(jù)提供程序
System.Data.SqlClientMicrosoft SQL Server
System.Data.Odbc?ODBC
System.Data.OracleClientOracle
System.Data.OleDbOLE DB


????在使用 ADO.NET 進(jìn)行數(shù)據(jù)庫操作時通常會用到 5 個類,分別是 Connection 類、 Command 類、DataReader 類、DataAdapter 類、DataSet 類。

????在接下來的講解中我們將以連接 SQL Server 為例介紹 ADO.NET 中的對象,引用的命名空間為 System.Data.SqlClient。
????除了 DataSet 類以外,其他對象的前面都加上 Sql,即 SqlConnection、SqlCommand、SqlDataReader、SqlDataAdapter。

1) Connection 類

????該類主要用于數(shù)據(jù)庫中建立連接和斷開連接的操作,并且能通過該類獲取當(dāng)前數(shù)據(jù)庫連接的狀態(tài)。
????使用 Connection 類根據(jù)數(shù)據(jù)庫的連接串能連接任意數(shù)據(jù)庫,例如 SQLServer、Oracle、MySQL 等。
????但是在 .NET 平臺下,由于提供了一個 SQL Server 數(shù)據(jù)庫,并額外提供了一些操作菜單便于操作,所以推薦使用 SQLServer 數(shù)據(jù)庫。

2) Command 類

????該類主要對數(shù)據(jù)庫執(zhí)行增加、刪除、修改以及查詢的操作。
????通過在 Command 類的對象中傳入不同的 SQL 語句,并調(diào)用相應(yīng)的方法來執(zhí)行 SQL 語句。

3) DataReader 類

????該類用于讀取從數(shù)據(jù)庫中查詢出來的數(shù)據(jù),但在讀取數(shù)據(jù)時僅能向前讀不能向后讀, 并且不能修改該類對象中的值。
????在與數(shù)據(jù)庫的連接中斷時,該類對象中的值也隨之被清除。

4) DataAdapter 類

????該類與 DataSet 聯(lián)用,它主要用于將數(shù)據(jù)庫的結(jié)果運(yùn)送到 DataSet 中保存。
??? DataAdapter 可以看作是數(shù)據(jù)庫與 DataSet 的一個橋梁,不僅可以將數(shù)據(jù)庫中的操作結(jié)果運(yùn)送到 DataSet 中,也能將更改后的 DataSet 保存到數(shù)據(jù)庫中。

5) DataSet 類

????該類與 DataReader 類似,都用于存放對數(shù)據(jù)庫查詢的結(jié)果。
????不同的是,DataSet 類中的值不僅可以重復(fù)多次讀取,還可以通過更改 DataSet 中的值更改數(shù)據(jù)庫中的值。
????此外,DataSet 類中的值在數(shù)據(jù)庫斷開連接的情況下依然可以保留原來的值。

????(總之,又是好幾個類,并用于一個大型的數(shù)據(jù)集合,也就是所謂的數(shù)據(jù)庫了。)

二、Connection:連接數(shù)據(jù)庫

??? C#?語言中 Connection 類是 ADO.NET 組件連接數(shù)據(jù)庫時第一個要使用的類,也是通過編程訪問數(shù)據(jù)庫的第一步。
????接下來我們來了解一下 Connection 類中的常用屬性和方法,以及如何連接 SQL Server 數(shù)據(jù)庫。

????Connection 類概述

??? Connection 類根據(jù)要訪問的數(shù)據(jù)和訪問方式不同,使用的命名空間也不同,類名也稍有區(qū)別,在這里我們使用的是 SqlConnection 類,以及微軟提供的 SQL Server 2014 數(shù)據(jù)庫。

SqlConnection 類中提供的常用屬性和方法如下表所示。

屬性或方法說明
SqlConnection()無參構(gòu)造方法
SqlConnection(string connectionstring)帶參數(shù)的構(gòu)造方法,數(shù)據(jù)庫連接字符串作為參數(shù)
Connectionstring屬性,獲取或設(shè)置數(shù)據(jù)庫的連接串
State屬性,獲取當(dāng)前數(shù)據(jù)庫的狀態(tài),由枚舉類型 Connectionstate 為其提供值
ConnectionTimeout屬性,獲取在嘗試連接時終止嘗試并生成錯誤之前所等待的時間
DataSource屬性,獲取要連接的 SQL Server 的實例名
Open()方法,打開一個數(shù)據(jù)庫連接
Close()方法,關(guān)閉數(shù)據(jù)庫連接
BeginTransaction()方法,開始一個數(shù)據(jù)庫事務(wù)

????使用 Connection 類連接數(shù)據(jù)庫

????在使用 Connection 類連接 SQL Server 2014 時,先要編寫數(shù)據(jù)庫連接串。
????數(shù)據(jù)庫連接串的書寫方法有很多,這里介紹兩種常用的方法。

????第1種方式

????????server = 服務(wù)器名稱 / 數(shù)據(jù)庫的實例名 ; uid = 登錄名 ; pwd = 密碼 ; database = 數(shù)據(jù)庫名稱

????其中:

    • server:用于指定要訪問數(shù)據(jù)庫的數(shù)據(jù)庫實例名,服務(wù)器名稱可以換成 IP 地址或者數(shù)據(jù)庫所在的計算機(jī)名稱,如果訪問的是本機(jī)數(shù)據(jù)庫,則可以使用“.”來代替,如果使用的是默認(rèn)的數(shù)據(jù)庫實例名,則可以省略數(shù)據(jù)庫實例名。例如連接的是本機(jī)的默認(rèn)數(shù)據(jù)庫,則可以寫成“server = .”。

    • uid:登錄到指定 SQL Server 數(shù)據(jù)庫實例的用戶名,相當(dāng)于以 SQL Server 身份驗證方式登錄數(shù)據(jù)庫時使用的用戶名,例如 sa 用戶。

    • pwd:與 uid 用戶對應(yīng)的密碼。

    • database:要訪問數(shù)據(jù)庫實例下的數(shù)據(jù)庫名。

????

????第2種方式

????????Data Source = 服務(wù)器名稱 \ 數(shù)據(jù)庫實例名 ; Initial Catalog = 數(shù)據(jù)庫名稱 ; User ID = 用戶名 ; Password = 密碼

????其中:

    • Data Source:與第1種連接串寫法中的 server 屬性的寫法一樣,用于指定數(shù)據(jù)庫所在的服務(wù)器名稱和數(shù)據(jù)庫實例名,如果連接的是本機(jī)的默認(rèn)數(shù)據(jù)庫實例,則寫成“Data Source=. ”的形式。

    • Initial Catalog:與第 1 種連接串寫法中的 database 屬性的寫法一樣,用于指定在 Data Source 中數(shù)據(jù)庫實例下的數(shù)據(jù)庫名。

    • User ID:與第 1 種連接串寫法中的 uid 屬性的寫法一樣,用于指定登錄數(shù)據(jù)庫的用戶名。

    • Password:與第 1 種連接串寫法中的 pwd 屬性的寫法一樣,用于指定 User ID 用戶名所對應(yīng)的密碼。

????此外,還可以在連接字符串中使用 Integrate Security = True 的屬性,省略用戶名和密碼,即以 Windows 身份驗證方式登錄 SQL Server 數(shù)據(jù)庫。?將數(shù)據(jù)庫連接更改如下:

????????Data Source = 服務(wù)器名稱 \ 數(shù)據(jù)庫實例名 ; Initial Catalog = 數(shù)據(jù)庫名稱 ; Integrate Security = True

????需要注意的是,由于在使用 Windows 身份驗證的方式登錄數(shù)據(jù)庫時,會對數(shù)據(jù)庫的安全性造成一定的影響,因此不建議使用 Windows 身份驗證的方法,而是使用 SQL Server 驗證方式登錄數(shù)據(jù)庫,即指定用戶名和密碼。

三、使用 SqlConnection 類與數(shù)據(jù)庫連接

????在完成了數(shù)據(jù)庫連接串的編寫后即可使用 SqlConnection 類與數(shù)據(jù)庫連接,分以下 3 步完成。

????1) 創(chuàng)建 SqlConnection 類的實例

????對于 SqlConnection 類來說,上表中提供了兩個構(gòu)造方法,通常是使用帶一個字符串參數(shù)的構(gòu)造方法來設(shè)置數(shù)據(jù)庫的連接串創(chuàng)建其實例,語句形式如下。? ? ????

SqlConnection 連接對象名 = new SqlConnection( 數(shù)據(jù)庫連接串 );

????2) 打開數(shù)據(jù)庫連接

????在創(chuàng)建 SqlConnection 連接類的實例后并沒有連接上數(shù)據(jù)庫,需要使用連接類的 Open 方法打開數(shù)據(jù)庫的連接。
????在使用 Open 方法打開數(shù)據(jù)庫連接時,如果數(shù)據(jù)庫的連接串不正確或者數(shù)據(jù)庫的服務(wù)處于關(guān)閉狀態(tài),會出現(xiàn)打開數(shù)據(jù)庫失敗的相關(guān)異常,因此需要通過異常處理來處理異常。
????打開數(shù)據(jù)庫連接的語句形式如下。

連接對象名.Open();

????3) 關(guān)閉數(shù)據(jù)庫連接

????在對數(shù)據(jù)庫的操作結(jié)束后要將數(shù)據(jù)庫的連接斷開,以節(jié)省數(shù)據(jù)庫連接的資源。
????關(guān)閉數(shù)據(jù)庫連接的語句形式如下。

連接對象名.Close();

????如果在打開數(shù)據(jù)庫連接時使用了異常處理,則將關(guān)閉數(shù)據(jù)庫連接的語句放到異常處理的 finally 語句中,這樣能保證無論是否發(fā)生了異常都將數(shù)據(jù)庫連接斷開,以釋放資源。
????除了使用異常處理的方式釋放資源外,還可以使用 using 的方式釋放資源。
????具體的語句如下。

using(SqlConnection 連接對象名 = new SQLConnection( 數(shù)據(jù)庫連接串 )){ //打開數(shù)據(jù)庫連接 //對數(shù)據(jù)庫先關(guān)操作的語句}

??? using 關(guān)鍵字的用法主要有兩個,一個是引用命名空間,一個是創(chuàng)建非托管資源對象。
????在 .NET 平臺上資源分為托管資源和非托管資源,托管資源是由 .NET 框架直接提供對其資源在內(nèi)存中的管理,例如聲明的變量;非托管資源則不能直接由 .NET 框架對其管理,需要使用代碼來釋放資源,例如數(shù)據(jù)庫資源、操作系統(tǒng)資源等。

????1.例

????創(chuàng)建與本機(jī) SQL Server 數(shù)據(jù)庫的連接,并使用異常處理。

????根據(jù)題目要求,連接 SQL Server 數(shù)據(jù)庫時使用的用戶名為 sa、密碼為 pwdpwd,連接的數(shù)據(jù)庫為test。

????創(chuàng)建 Windows 窗體應(yīng)用程序,并在窗體上放置一個按鈕,在按鈕的單擊事件中加入以下代碼。

//編寫數(shù)據(jù)庫連接串string connStr = "Data source=.;Initial Catalog=test;User ID=sa;Password=pwdpwd";//創(chuàng)建SqlConnection的實例SqlConnection conn = null;try{ conn = new SqlConnection(connStr); //打開數(shù)據(jù)庫連接 conn.Open(); MessageBox.Show("數(shù)據(jù)庫連接成功!");}catch(Exception ex){ MessageBox.Show("數(shù)據(jù)庫連接失敗!" + ex.Message);}finally{ if (conn != null) { //關(guān)閉數(shù)據(jù)庫連接 conn.Close(); }}

分析:

????首先是編寫數(shù)據(jù)庫連接串,

?????????就是上面的,使用 Connection 類連接數(shù)據(jù)庫。第2種方法。

????然后創(chuàng)建 SqlConnection 類的實例。

????????之所以先為空,是為了放進(jìn)try中進(jìn)行局部變量轉(zhuǎn)化。

????如果打開數(shù)據(jù)庫成功,就提示消息框提示。

????如果報錯,就提示數(shù)據(jù)庫連接失敗!消息框。

????最后如果數(shù)據(jù)庫不等于空,所以關(guān)閉數(shù)據(jù)庫連接.

運(yùn)行結(jié)果:? ?

????????????2.例? ??

????在上一實例的基礎(chǔ)上使用 using 關(guān)鍵字釋放資源。

????根據(jù)題目要求,省略了 finally 部分的語句,代碼如下。

//編寫數(shù)據(jù)庫連接串string connStr = "Data source=.;Initial Catalog=test;User ID=sa;Password=pwdpwd";//創(chuàng)建SqlConnection的實例try{ using(SqlConnection conn=new SqlConnection(connStr)) { //打開數(shù)據(jù)庫連接 conn.Open(); MessageBox.Show("數(shù)據(jù)庫連接成功!"); }}catch(Exception ex){ MessageBox.Show("數(shù)據(jù)庫連接失敗!" + ex.Message);}

分析:

????第6行,使用using關(guān)鍵字。

????????而 using 關(guān)鍵字的用法主要有兩個,一個是引用命名空間,一個是創(chuàng)建非托管資源對象。
????在 .NET 平臺上資源分為托管資源和非托管資源,托管資源是由 .NET 框架直接提供對其資源在內(nèi)存中的管理,例如聲明的變量;非托管資源則不能直接由 .NET 框架對其管理,需要使用代碼來釋放資源,例如數(shù)據(jù)庫資源、操作系統(tǒng)資源等。

運(yùn)行結(jié)果:? ?

????事實上,我并沒有連接到數(shù)據(jù)庫,所以導(dǎo)致了這個情況。

????之所以會這樣,是因為我在安裝數(shù)據(jù)庫時,并沒有SQL server身份驗證,而是Windows身份驗證,所以連接發(fā)生就屬于第2種下面的另一種。

以 Windows 身份驗證方式登錄 SQL Server 數(shù)據(jù)庫

????將數(shù)據(jù)庫連接更改如下:

????????Data Source = 服務(wù)器名稱 \ 數(shù)據(jù)庫實例名 ; Initial Catalog = 數(shù)據(jù)庫名稱 ; Integrate Security = True


四、SQL Server 數(shù)據(jù)庫安裝。(因為配置環(huán)境很重要)

??? 1.首先百度搜索安裝。

我下載的是這個

????2.找到這個

????????打開后是這個

????選擇安裝,并安裝右邊的第一個“全新SQL Server 獨(dú)立安裝或向現(xiàn)有安裝添加功能”。

????然后再點擊“安裝SQLServer管理工具”,跳轉(zhuǎn)頁面后,下載SSMS。

????????總之就是這兩個安裝包,并按照提示進(jìn)行下一步安裝。

????????首先是SQL2019,安裝完后點擊自定義。

????????然后彈出這個:

然后進(jìn)行下一步逐一安裝,唯一注意的是,“數(shù)據(jù)庫引擎配置”。

????因為上述表示,用Windows身份驗證模式不好,所以就用混合模式

不過我這里因為出現(xiàn)密碼設(shè)置過于簡單的提示,所以就暫時使用Windows身份驗證模式了。

然后就是下一步下一步。

然后再安裝:SSMS-Setup-CHS.exe,也就是數(shù)據(jù)庫管理工具。

安裝完后,在電腦菜單欄中找到這個,并打開。

????然后在菜單欄的文件-連接對象資源管理器。

????彈出這個

????服務(wù)器的名稱也就確定了。

????而我這時先使用Windows身份驗證進(jìn)行登錄。

????然后是這樣的:

????右鍵這個,點屬性:

????在安全性中,切換“SQL Server和Windeos身份驗證模式”。

????然后打開數(shù)據(jù)庫-》安全性-》登錄名-》sa賬號,并雙擊。

????可修改密碼

并且點到狀態(tài),激活啟動。

都設(shè)置完后,再點擊重啟一些數(shù)據(jù)庫。

然后就能使用sa賬戶訪問了。

????之后就是新建數(shù)據(jù)庫:

????????添加數(shù)據(jù)庫的名稱

然后在表中進(jìn)行創(chuàng)建數(shù)據(jù)表。

列名:數(shù)據(jù)類型

????然后Ctrl+s保存,并刷新一下,找到保存的表,再填寫內(nèi)容。

????右鍵-》編輯前200行,就可以添加了。

????添加內(nèi)容元素,就可以在VS進(jìn)行操作了。

????(大致就這些,雖然有些亂,不過熟悉了也就發(fā)現(xiàn)沒什么不同的。)

????首先就是下載軟件,SQL server數(shù)據(jù)庫,和管理工具。

????????(如果習(xí)慣代碼的話,也可以使用指令進(jìn)行數(shù)據(jù)庫的創(chuàng)建,表的創(chuàng)建和錄入。這里暫時先不管了,以后再說。)

????然后就是配置身份驗證,初期不讓用sa,那就先Windows身份進(jìn)入。

????????再通過“安全性”-》“登錄名”里啟動sa,并且修改密碼什么的,再重啟一下數(shù)據(jù)庫。

????最后就是創(chuàng)建數(shù)據(jù)庫,表的創(chuàng)建和數(shù)據(jù)錄入了。

????????也就是“數(shù)據(jù)庫”右鍵創(chuàng)建;

????????找到創(chuàng)建的數(shù)據(jù)庫名-》進(jìn)入“表”,再右鍵創(chuàng)建保存。

????????然后刷新,否則看不到。

????????最后再找到表名,右鍵“編輯前200行”進(jìn)行手動錄入。

????????????而表名-》右鍵“設(shè)計”,可以重新構(gòu)建表的類型。

????基本上就是這些吧!然后就是注意數(shù)據(jù)類型,以及其他是否為空的條件,從而保證表的完整性,嚴(yán)謹(jǐn)性。

總結(jié)

以上是生活随笔為你收集整理的sqlserver连接字符串_【自学C#】|| 笔记 39 SQL server 连接数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。