国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
-探究 Microsoft’s Express Suite 2005

對于許多專業(yè)開發(fā)人員而言,Visual Studio 2003 和 SQL Server 2000 無疑是為企業(yè)創(chuàng)建解決方案的極佳組合。然而,對于小規(guī)模應(yīng)用程序,許多開發(fā)人員更看重腳本語言的簡單易用,而不是面向?qū)ο笳Z言的健壯性和代碼重用優(yōu)勢。這些開發(fā)人員通常使用 Visual Basic 6、傳統(tǒng)的 ASP 和 Microsoft Access 創(chuàng)建數(shù)據(jù)庫解決方案。這阻礙了 .NET 技術(shù)的推廣。即使提供免費版本的 SQL Server 和 MSDE,也不足以有效地替代 Microsoft Access。為了加快小規(guī)模應(yīng)用程序接受 .NET SQL Server 技術(shù)的進程,Microsoft 即將發(fā)布一個新的產(chǎn)品線,稱為 Express 套件。Express 套件被設(shè)計為具有可快速下載、相對便宜,而且容易學習的特性。如果 Express 套件能夠成功吸引目前采用腳本語言的廣大非企業(yè)開發(fā)人員,它就可以顯著地擴大整個 .NET 市場,并簡化非企業(yè)開發(fā)人員創(chuàng)建的解決方案向?qū)I(yè)開發(fā)人員管理的企業(yè)解決方案轉(zhuǎn)換的過程。本文首先介紹 Express 套件所包含的三個主要產(chǎn)品的社區(qū)技術(shù)預(yù)覽版:Visual Basic Express、Visual Web Developer Express 和 SQL Server Express。Express 套件的最終版本預(yù)期在下半年發(fā)布。

Express 套件介紹

Express 套件提供簡化和低價版本的 Visual Basic .NET、C#、C++ 和 J#,它們可以為 .NET Framework 2.0 創(chuàng)建解決方案??梢詫?Express 套件看作是入門級的 Visual Studio 2005 版本。

Express 套件還有一個稱為 Visual Web Developer Express 的 Web 開發(fā)工具,通過這一工具,可以使用 Visual Basic .NET 或 C# 語言來創(chuàng)建 ASP.NET .0 解決方案。它與該套件的另一個成員 SQL Server Express 配合使用。SQL Server Express 與 SQL Server 有一定的關(guān)系,類似于 MSDE 與 SQL Server 2000 之間的關(guān)系。SQL Server Express 是免費的,它提供 SQL Server 所提供的絕大部分技術(shù),但對您用它構(gòu)建的解決方案的大小有些限制。您可以從網(wǎng)址是 http://lab.msdn.Microsoft.com/express 的 Express 套件站點開始了解關(guān)于任何組件的詳細信息。

Express 套件滿足許多典型開發(fā)環(huán)境的核心需要。開發(fā)人員可以使用 Visual Basic Express 和其他 Express 套件來為他們的自身教育、小型商務(wù),甚至大型商務(wù)中的一個部門構(gòu)建應(yīng)用程序。因為這些解決方案是在 .NET Framework 的 2.0 版本上構(gòu)建的,并且可能融入了 SQL Server 2005 技術(shù),所以如果有這樣的需求,它們很容易被企業(yè)開發(fā)人員所采納。這種便于升級的能力為組織中的部門解決方案或個體小型商務(wù)解決方案增加了價值,促使其成為整個行業(yè)的縱向應(yīng)用程序。

創(chuàng)建數(shù)據(jù)庫

SQL Server Express 自帶創(chuàng)建新數(shù)據(jù)庫的向?qū)?,但如果您使用的?Visual Basic Express 或 Visual Web Developer Express,您可能更傾向于使用在這些環(huán)境中直接可用的數(shù)據(jù)庫創(chuàng)建向?qū)?。這兩個向?qū)У牟僮鞑煌J操作都是在方便的位置存儲一個數(shù)據(jù)庫文件,以便應(yīng)用程序創(chuàng)建該數(shù)據(jù)庫。

使用 Visual Basic Express

要在 Visual Basic Express 中新建一個數(shù)據(jù)庫,首先啟動一個新項目或者打開現(xiàn)有項目。右鍵單擊 Solution Explorer 中的項目名稱,選擇“Add | New Item”。在“Add New Item”對話框中選擇 Blank Database 模板。可以接受默認的數(shù)據(jù)庫名稱,也可以指定一個新名稱,然后單擊“Add”。該向?qū)⑼ㄟ^提示信息提醒您,計算機需要安裝 SQL Server 版本 9 才能使數(shù)據(jù)庫文件正常工作。這個過程會在項目的根文件夾中添加一個擴展名為 .mdf 的新數(shù)據(jù)庫文件。

只有當您準備關(guān)閉項目時,Visual Basic Express 項目文件夾才會提交。當您選擇關(guān)閉項目時,Visual Basic Express 會詢問您保存或放棄更改。對于新項目,選擇放棄更改會放棄整個項目,包括它的數(shù)據(jù)庫。對于現(xiàn)有項目,放棄更改就會放棄自上次保存項目文件以來的任何更改。對于每種情況,當這些更改中包含您希望保存的、由 Visual Basic Express 數(shù)據(jù)庫創(chuàng)建向?qū)傻臄?shù)據(jù)庫文件時,請確保保存所有更改。

圖 1顯示 vsdvbe1 項目的 Save Project 對話框。后臺的 Solution Explorer 包含一個文件名為 vsdvbe1sse.mdf 的數(shù)據(jù)庫圖標。請注意,Save Project 對話框設(shè)置為將項目文件夾存儲在 C:\Articles 文件夾中。單擊該對話框中的“Save”將會在 C:\Articles 文件夾中添加一個 vsdvbe1 文件夾。在 vsdvbe1 文件夾中有另外一個名稱與之相同的文件夾,它將作為項目的根文件夾。vsdvbe1sse.mdf 文件就保存在這個二級嵌套的文件夾中。

采用Visual Web Developer Express

打開 Visual Web Developer Express 之后,通常為新項目啟動一個新的 Web 站點。默認情況下,Visual Web Developer Express 將新 Web 站點文件夾建在 C:\WebSites 文件夾中。以這種方式打開的新 Web 站點會包含一個 Data 文件夾,項目的 Solution Explorer 將顯示該文件夾。要在 Data 文件夾中為當前項目新建一個數(shù)據(jù)庫,請右鍵單擊 Solution Explorer 中的該 Data 文件夾,選擇“Add | New Item”。在“Add New Item”對話框中,選擇 Database 模板,可以接受默認的數(shù)據(jù)庫名稱,也可以定義一個新名稱。與 Visual Basic Express 不同,Visual Web Developer Express 會在您處理項目時保存項目文件夾及其內(nèi)容。不需要單擊“Save Project”對話框中的“Save”來保存項目文件。

本文的示例 Visual Web Developer Express 項目名為 vsdvwde1,它在 C:\WebSites 中創(chuàng)建一個具有相同名稱的文件夾。vsdvwde1 項目的示例數(shù)據(jù)庫文件名稱為 vsdvwde1sse.mdf,保存在 vsdvwde1 Web 站點文件夾的 Data 文件夾中。實際上,Visual Web Developer Express 在 Data 文件夾中還創(chuàng)建了第二個文件,名為 vsdvwde1sse _log.ldf。這第二個文件保存數(shù)據(jù)庫文件的日志。Visual Basic Express 也為它新建的每個數(shù)據(jù)庫文件創(chuàng)建一個日志文件。

圖 2 顯示 vsdvwde1 項目的 Solution Explorer。請注意 Data 文件夾中的數(shù)據(jù)庫文件,以及與該數(shù)據(jù)庫文件相關(guān)的日志文件。

創(chuàng)建和填充表

Visual Basic Express 和 Visual Web Developer Express 共享創(chuàng)建和填充表的通用圖形用戶界面。您可以從 Database Explorer 手動創(chuàng)建、填充和編輯表的設(shè)計和值。在本文介紹的社區(qū)技術(shù)預(yù)覽版中,可以通過選擇 Visual Web Developer Express 中的 View | Database Explorer 或 Visual Basic Express 中的 View | Server Explorer 來打開 Database Explorer。

向 Database Explorer 添加一個連接

如果 Database Explorer 不包含您要向其添加表的數(shù)據(jù)庫連接,則必須添加一個到該數(shù)據(jù)庫的連接,以便 Database Explorer 有該數(shù)據(jù)庫的 Tables 圖標。右鍵單擊 Database Explorer 中的 Data Connections 來添加新的數(shù)據(jù)庫連接,并選擇“Add Connection”,打開“Connection Properties”對話框。這個對話框與 Microsoft 在早期產(chǎn)品中為許多類似任務(wù)提供的 Data Link Properties 對話框非常相似。

通過以下步驟指定到 vsdvwde1sse.mdf 數(shù)據(jù)庫文件的連接:

1. 在“Connection Properties”對話框的“Provider”視圖中,確認選擇了 .NET Framework Data Provider for SQL Server。

2. 切換回“Connection”視圖,以完成連接規(guī)范。

3. 在標記為 Select 的組合框中,選擇或鍵入一個服務(wù)器名稱。如果您使用默認指定的實例,則可以指定 \SQLEXPRESS。如果計算機中的 SQL Server Express 是默認實例,而不是指定實例,則可以輸入 XPRESS。您也可以打開組合框,選擇任意廣播其名稱的 SQL Server 實例。

4. 除非您在安裝時更改 SQL Server Express 的默認身份驗證設(shè)置,否則選擇標題為“UseWindowsNT Integrated Security”的單選按鈕。當然,您需要以具有一定權(quán)限的用戶身份登錄到 Windows,從而在 SQL Server Express 數(shù)據(jù)庫中創(chuàng)建表。安裝 SQL Server Express 的計算機管理員自然具有這種權(quán)限。

5. 將數(shù)據(jù)庫指定為數(shù)據(jù)庫的 .mdf 文件的路徑和文件名。對于在 vsdvwde1 項目中創(chuàng)建的數(shù)據(jù)庫文件,路徑和文件定為 C:\WebSites\vsdvwde1\Data\vsdvwde1sse.mdf。您可以從標題為“Select or enter a database name”的單選按鈕下面的下拉框選擇此文件和路徑。另外,也可以使用對話框中的 Browse 按鈕導(dǎo)航至要連接的數(shù)據(jù)庫文件。單擊標題為“Attach a database file as a file name”的單選按鈕可以啟用該 Browse 按鈕。

當您按照這些步驟操作時,會彈出 Connection Properties 對話框來設(shè)置到 vsdvwde1sse.mdf 文件的連接,如圖 3 所示。

單擊“OK”將連接添加到 Database Explorer 中的 Data Connections 集合。請注意,您指定的是一個數(shù)據(jù)庫文件,而不是將數(shù)據(jù)庫文件附加到服務(wù)器實例的數(shù)據(jù)庫名稱。SQL Server Express 數(shù)據(jù)庫文件類似于 Jet .mdb 文件,因為您可以在運行時動態(tài)連接它們,而文件不會始終由服務(wù)器實例管理。

創(chuàng)建表

要在數(shù)據(jù)庫中創(chuàng)建表,請首先展開 Database Explorer 中的 Data Connections,顯示出要在其中創(chuàng)建表的數(shù)據(jù)庫的連接。然后,右鍵單擊目標數(shù)據(jù)庫中的“Tables”,選擇“Add New Table”。這些操作會打開一個選項卡式窗口,讓您以圖形方式指定表。該選項卡式窗口有兩個窗格。上面的窗格用于指定主要的列屬性,即列名稱、數(shù)據(jù)類型以及列是否允許空值。右鍵單擊上面窗格中任意表列的行,可以指定其他列功能,包括列是否作為主鍵或者列是否檢查約束。下面的窗格讓您細化和添加在上面窗格中為當前選定列指定的列屬性。例如,如果您在上面的窗格中為一列選擇 int 數(shù)據(jù)類型或其他任何整數(shù)數(shù)據(jù)類型,則可以在下面的窗格中為該列指定 Identity 屬性。

圖 4 顯示用于設(shè)計聯(lián)系人數(shù)據(jù)表的選項卡式窗口。所有的基本列屬性都已指定。例如,所有列都有一個數(shù)據(jù)類型,而且 ContactID 列還有一個 Identity 屬性顯示在下面的窗格中。在頂部的窗格中,ContactID 列的右鍵單擊菜單有 Set Primary Key 選項。單擊此選項將該列作為表的主鍵。單擊“Standard”工具欄上的“Save”工具,將打開一個對話框,在其中您可以接受默認的表名稱,也可以為該表指定一個自定義表名稱,例如 Contacts。上述步驟也適用于在 vsdvbe1sse.mdf 文件中創(chuàng)建 Contacts 表。

填充表

在向數(shù)據(jù)庫添加新表之后,您可以手動在表中填充數(shù)據(jù)。對于要在其中添加表的數(shù)據(jù)庫,表名稱會出現(xiàn)在 Tables 集合的 Database Explorer 中。右鍵單擊該表的名稱(例如 Contacts),并選擇 Show Table Data。此選擇將打開以該表的名稱命名的選項卡式窗口。窗口中是列標頭,它含有空白行上方表中的列名稱。這個最初的空白行在第一列左邊的邊界處含有一個星號。在鍵入一行列值后,星號會標記出新的最后一行,在其中可以鍵入其他行的列值。

圖 5 顯示 vsdvwde1sse.mdf 數(shù)據(jù)庫中的 Contacts 表,它有兩行聯(lián)系人數(shù)據(jù)。vsdvbe1sse.mdf 數(shù)據(jù)庫中的 Contacts 表也有這兩行數(shù)據(jù)。

連接和使用數(shù)據(jù)庫

在本地計算機上創(chuàng)建數(shù)據(jù)庫,并在數(shù)據(jù)庫中填充對象和值之后,通常是要允許其他計算機的用戶連接到該數(shù)據(jù)庫。有兩種操作可以實現(xiàn)這個目標。首先,需要配置 SQL Server Express 實例以偵聽對它的連接??梢允褂?Computer Manager(一個隨 SQL Server Express 安裝的圖形化工具)來配置 SQL Server Express 實例,以及使用命令行指令來管理 SQL Server Express。在配置 SQL Server Express 實例的連接性之后,通常以編程方式或圖形化方式連接到 SQL Server Express 數(shù)據(jù)庫以顯示數(shù)據(jù)或管理該數(shù)據(jù)庫。我將在下面兩小節(jié)中討論這兩個步驟。

配置網(wǎng)絡(luò)連接性

默認情況下,SQL Server Express 安裝在一臺計算機上,所以其他計算機無法連接上它。具體而言,SQL Server Express 不會自動偵聽來自其他計算機的連接。這是一個安全措施:如果不需要與另一臺計算機相連接,那么您的數(shù)據(jù)庫自身就不公開以避免黑客的潛在攻擊。這種安全優(yōu)勢的負面影響是,如果您確實需要它,就不得不啟用連接性。對于 SQL Server Express 實例,在默認安裝下甚至連舊式客戶端(例如,本地 計算機中的 Visual Studio 2003)都不能連接。您可以通過啟用協(xié)議和啟動 SQLBrowser 服務(wù)來啟用到 SQL Server Express 實例的連接性。

首先,必須通過 Computer Manager 啟用命名管道和 TCP/IP 協(xié)議。從 Windows Start 按鈕啟動 Computer Manager,方法是從“All Programs | Microsoft SQL Server”組選擇 SQL Computer Manager。連續(xù)展開用于 SQLEXPRES 的 SServer Network Configuration 和協(xié)議。通過右鍵單擊用于 SQLEXPRESS 的協(xié)議中的 Np 和 TCP 項,選擇 Enable 項。必須重啟 SQL Server Express 實例才能使菜單選擇生效。您可以通過 Computer Manager 中的 Services 實現(xiàn)這一點,步驟如下:

1. 展開 Services。

2. 雙擊 SQL Server。

3. 在右側(cè)窗格中,右鍵單擊 SQLEXPRESS 條目。

4. 在右鍵單擊菜單中選擇“Restart”。

在啟用協(xié)議之后,需要啟動 SQLBrowser 服務(wù)。可以用以下兩個命令行指令來啟動和停止此服務(wù)。每當重啟運行 SQL Server Express 實例的計算機時,都需要重啟 SQLBrowser 服務(wù),但命名管道和 TCP/IP 協(xié)議的啟用狀態(tài)可以保持到您禁用它們?yōu)橹埂?

net start sqlbrowser
net stop sqlbrowser

以編程方式從本地計算機打開數(shù)據(jù)庫

在 Visual Basic Express 和 Visual Web Developer Express 中編程實現(xiàn)到數(shù)據(jù)庫的連接與采用 Visual Studio 2003 實現(xiàn)相同任務(wù)非常類似。首先,實例化一個 SqlConnection 實例,并對 ConnectionString 屬性賦值,指向要打開的數(shù)據(jù)庫。然后調(diào)用 SqlConnection 實例的 Open 方法。當您不再需要該數(shù)據(jù)庫連接時,應(yīng)該調(diào)用 SqlConnection 實例的 Close 方法。

SQL Server Express 有一個特色是 XCopy 數(shù)據(jù)庫部署,它意味著客戶端應(yīng)用程序(例如 Visual Basic Express 項目)可以在運行時動態(tài)附加數(shù)據(jù)庫文件,然后在應(yīng)用程序關(guān)閉時釋放該數(shù)據(jù)庫文件。這與 SQL Server 的早期版本,甚至與 SQL Server 都有著顯著的不同,后兩者不斷管理它們的數(shù)據(jù)庫文件,不管客戶端應(yīng)用程序是否需要它們。由于有了 XCopy 部署,您可以為 SQL Server Express 數(shù)據(jù)庫使用與其他 SQL Server 版本不同的連接字符串,甚至為其他版本的 SQL Server 使用這樣的連接字符串。

在 Express 套件客戶端應(yīng)用程序中,通常用 AttachDBFileName 參數(shù)來為連接字符串指定數(shù)據(jù)庫文件名和路徑。Database 或 Initial Catalog 參數(shù)的使用是可選的。如果您在連接字符串中將 Database 和 Initial Catalog 參數(shù)與 AttachDBFileName 參數(shù)一起使用,則不必為該 Database 或 Initial Catalog 參數(shù)賦值。對于指向 vsdvbe1sse.mdf 數(shù)據(jù)庫文件的連接字符串,正確的 AttachDBFileName 參數(shù)值是 C:\Articles\vsdvbe1\vsdvbe1\ vsdvbe1sse.mdf。

SQL Server Express 也支持不斷附加數(shù)據(jù)庫,這對 SQL Server 來說更典型。SQL Server Express 安裝過程將 master.mdf 數(shù)據(jù)庫文件附加到它安裝的實例上。您也可以使用 T-SQL 技術(shù)(例如 sp_attach_db 系統(tǒng)存儲過程)來附加任何數(shù)據(jù)庫文件,以不斷受 SQL Server Express 實例管理。當使用一個已附加的數(shù)據(jù)庫文件時,請在連接字符串中使用 Database 或 Initial Catalog 參數(shù)來表示數(shù)據(jù)庫,而不使用 AttachDBFileName 參數(shù)。

下面的代碼摘錄演示了一種連接到 SQL Server Express 數(shù)據(jù)庫的方法。這段代碼適用于 Visual Basic Express,但同樣的方法也適用于 Visual Web Developer Express。該示例對 vsdvbe2 項目中的 Form1 上的 Button1 使用 Click 事件過程,以此連接到 vsdvbe1sse.mdf 數(shù)據(jù)庫文件。由于 Button2 的 Click 事件過程對 vsdvwde1sse.mdf 文件執(zhí)行相同的任務(wù),所以應(yīng)用程序使用 CNN 類來允許重用兩個 Click 事件過程需要的公共代碼。通過這種方式,我在項目中添加了對 System.Data 命名空間的引用,因為 Visual Basic Express 不會自動添加該引用。另外,F(xiàn)orm1 模塊包含一條 Imports 語句,以便 System.Data.SqlClient 命名空間簡化引用 SqlClient 類型(例如 System.Data.SqlClient 命名空間中的 SqlConnection 類)的語法。

對于表示 SqlConnection 實例的變量 (cnn1),CNN 類包含兩個方法和一個公共聲明。用于變量聲明的 Public 關(guān)鍵字使得 cnn1 在 CNN 類實例外可用。MakeCNN 方法為 cnn1 指定連接字符串,并返回 SqlConnection 類實例。該方法帶有兩個參數(shù):一個指定到數(shù)據(jù)庫文件的路徑,另一個是數(shù)據(jù)庫文件的名稱,包括其擴展名。

Public cnn1 As New SqlConnection
Public Function MakeCNN( _
ByVal strPathAs String, _
ByVal DBFileName As String) As _
System.Data.SqlClient.SqlConnection
Dim strConnection As String
strConnection = _
"Data Source = .\sqlexpress;" & _
"Integrated Security = true;" & _
"AttachDBFileName= " & strPath& "\" & _
DBFileName
cnn1.ConnectionString= strConnection
Return cnn1
End Function

第二個 CNN 類方法是由 OpenCNN 函數(shù)實現(xiàn)的,它調(diào)用 SqlConnection 實例的 Open 方法。該函數(shù)需要兩個參數(shù):一個用于 SqlConnection 實例,另一個用于不帶擴展名的數(shù)據(jù)庫名稱。這段代碼在 Try...Catch...Finally 語句的 Try 子句內(nèi)部調(diào)用 Open 方法。Try 和 Catch 子句包含用于顯示一條消息的語句,這個消息通知用戶打開數(shù)據(jù)庫成功或失敗。這些子句執(zhí)行這個非常簡單的應(yīng)用程序需要的所有工作。因此,F(xiàn)inally 子句關(guān)閉數(shù)據(jù)庫。

Public Function OpenCnn( _
ByVal cnn1 As SqlConnection, _
ByVal DBName As String) As String
Try
cnn1.Open()
Return (DBName & " opened successfully.")
Catch ex As Exception
Return (DBName & _
" did not open successfully.")
Finally
cnn1.Close()
End Try
End Function

回想一下,Button1 的 Click 事件過程中的代碼連接到 vsdvbe1sse.mdf 數(shù)據(jù)庫文件。因此,該事件過程首先為指向數(shù)據(jù)庫文件的路徑設(shè)置一個字符串變量 (strPath)。接下來,代碼將 strName 賦值為不帶文件擴展名的數(shù)據(jù)庫名稱。然后,應(yīng)用程序使用這些變量作為 CNN 類實例 (MyCNN) 的 MakeCNN 方法的參數(shù)。最后,該過程通過使用來自 OpenCNN 方法的 MyCNN 返回值結(jié)束。

strPath= "C:\Articles\" & _
"VSDVBE1\VSDVBE1"
strName= "vsdvbe1sse"
Dim MyCNNAs New CNN
cnn1 = MyCNN.MakeCNN(strPath, _
strName+ ".mdf")
MessageBox.Show(MyCNN.OpenCnn(cnn1, strName))

Button2 的 Click 事件過程與 Button1 的 Click 事件過程相同。唯一的不同在于 strPath 和 strName 變量所賦的值,它們指向 C:\WebSites\VSDVWDE1\Data 路徑中的 vsdvwde1sse.mdf 數(shù)據(jù)庫文件。

以編程方式從遠程計算機打開數(shù)據(jù)庫

以編程方式從另一臺計算機打開和使用 SQL Server Express 數(shù)據(jù)庫基于并結(jié)合了本文前面介紹的技術(shù)。另外,此任務(wù)需要新元素 — 即,登錄到 SQL Server 實例(SQL Server Express 數(shù)據(jù)庫中的一個用戶帳戶),并且授予該用戶帳戶一個或多個數(shù)據(jù)庫訪問權(quán)限。本文前面的所有演示和示例都隱式使用 Windows 管理員帳戶。本節(jié)顯式使用非 Windows 管理員帳戶的 Windows 帳戶。雖然您在 SQL Server Express 中既可以使用 Windows 帳戶也可以使用 SQL Server 帳戶,但 Microsoft 明顯希望我們使用 Windows 帳戶。實際上,SQL Server Express 默認安裝時只有 Windows 身份驗證,它拒絕任何非 Windows 用戶的訪問。

由于 SQL Server Express 的默認身份驗證,您至少需要創(chuàng)建一個域 Windows 帳戶,以便來自遠程計算機的用戶可以使用該帳戶連接到運行 SQL Server Express 的計算機。您還需要為 SQL Server Express 實例授予 Windows 用戶登錄權(quán)限。接下來,需要在數(shù)據(jù)庫中為您創(chuàng)建的登錄創(chuàng)建一個用戶。最后一步是分配權(quán)限,例如為與您的 Windows 用戶登錄相關(guān)的用戶帳戶分配對一張表的 SELECT 權(quán)限。在進行完最后這步設(shè)置后,您就可以用您的 Windows 用戶帳戶登錄到遠程計算機。接下來就能夠以正常方式從遠程計算機的客戶端應(yīng)用程序連接到運行 SQL Server Express 的計算機。

vsdvbe2 項目中的 Form1 包含帶有 Click 事件過程的 Button3、Button4 和 Button5,從而幫助您測試這些從遠程計算機連接到 SQL Server Express 數(shù)據(jù)庫的指南。Click 事件過程假設(shè)有一個名為 vsd1 的 Windows 帳戶。

Button3 的 Click 事件過程設(shè)置為允許 vsd1 Windows 用戶打開 vsdvbe1sse.mdf 數(shù)據(jù)庫中的 Contacts 表。

Button4 的 Click 事件過程刪除 vsd1 在 vsdvbe1sse.mdf 數(shù)據(jù)庫中的數(shù)據(jù)庫用戶帳戶,但該過程保留 vsd1 登錄到 SQL Server Express 實例的權(quán)限。Button5的 Click 事件過程禁用 vsd1 Windows 帳戶登錄到 SQL Server Express 實例的權(quán)限。

Button3 的 Click 事件過程有兩個部分。第一部分授予 vsd1 登錄到本地 SQL Server Express 實例的權(quán)限。第一部分通過 master.mdf 數(shù)據(jù)庫上下文執(zhí)行。請注意,連接字符串語法與前面使用的連接字符串略有不同。master.mdf 數(shù)據(jù)庫是不斷附加的,因此可以由 Database 參數(shù)引用,該參數(shù)在引用數(shù)據(jù)庫時不需要數(shù)據(jù)庫文件擴展名(使用 master 而不是 master.mdf)。

另外,在連接字符串中不需要使用 AttachDBFileName 參數(shù)。您可以通過調(diào)用 sp_grantlogin 系統(tǒng)存儲過程來為 SQL Server Express 實例分配 Windows 用戶帳戶登錄權(quán)限。該系統(tǒng)存儲過程需要一個 Windows 帳戶名作為它的參數(shù)。該 Windows 帳戶名有兩個部分,它們之間以反斜杠 (\) 分隔。第一部分是域服務(wù)器名,第二部分是 Windows 帳戶名。

在下面的代碼中,cab233a 作為域名,vsd1 作為 Windows 帳戶名。這段代碼摘錄使用 SqlCommand 類實例 (cmd1) 來包含該系統(tǒng)存儲過程。SqlCommand 對象的 ExecuteNonQuery 方法運行該系統(tǒng)存儲過程。

strPath= "Data Source = .\sqlexpress;" & _
"Integrated Security = true;" & _
"Database = master"
cnn2.ConnectionString= strPath
cnn2.Open()
cmd1.CommandText= _
"sp_grantlogin ‘cab233a\vsd1‘"
cmd1.Connection = cnn2
cmd1.ExecuteNonQuery()
cnn2.Close()

Button3 的 Click 事件過程的第二部分在 vsdvbe1sse.mdf 數(shù)據(jù)庫中為 cab233a\vsd1 登錄創(chuàng)建一個用戶帳戶。因此,下面的代碼摘錄首先連接到 vsdvbe1sse.mdf 數(shù)據(jù)庫。在連接到數(shù)據(jù)庫文件之后,該摘錄執(zhí)行 SqlCommand 對象。SqlCommand 對象包含 T-SQL 指令,用于在 vsdvbe1sse.mdf 數(shù)據(jù)庫中創(chuàng)建一個與 cab233a\vsd1 登錄名稱相同的用戶帳戶,并授予該用戶帳戶對 Contacts 表的 SELECT 權(quán)限。

strPath= "C:\Articles\" & _
"VSDVBE1\VSDVBE1"
strName= "vsdvbe1sse"
cnn1 = MyCNN.MakeCNN(strPath, _
strName+ ".mdf")
Try
cnn1.Open()
cmd1.CommandText= _
"sp_grantdbaccess ‘cab233a\vsd1‘ " & _
"GRANT SELECTON Contacts " & _
"to [cab233a\vsd1]"
cmd1.Connection = cnn1
cmd1.ExecuteNonQuery()
cnn1.Close()
Catch ex As Exception
MsgBox(ex.Message)
MessageBox.Show( _
"Cannot assign databaseAccess" & _
"at this time.")
End Try

Button4 和 Button5 的 Click 事件過程與 Button3 的 Click 事件過程的第二段摘錄語法相同。Button4 的 Click 事件過程將其 SqlCommand 對象的 CommandText 屬性賦值為 sp_revokedbaccess ‘cab233a\vsd1‘。此 T-SQL 指令對 vsdvbe1sse.mdf 數(shù)據(jù)庫調(diào)用 Access。吊銷數(shù)據(jù)庫 Access 會調(diào)用刪除數(shù)據(jù)庫中對應(yīng)于 cab233a\vsd1 登錄的用戶帳戶。然而,該用戶仍然可以登錄到 SQL Server Express 實例。Button5 的 Click 事件過程將其 SqlCommand 對象的 CommandText 屬性賦值為 sp_revokelogin ‘cab233a\vsd1‘。此 T-SQL 指令禁用 vsd1 Windows 帳戶在 SQL Server Express 實例中的登錄特權(quán)。

我從兩臺遠程計算機,用三個不同的客戶端應(yīng)用程序(即 Visual Studio、Visual Studio 2003 和 Access)測試了這些過程。在運行 Button3 的 Click 事件過程之后,就可以從遠程計算機上運行的這三個應(yīng)用程序看到 vsdvbe1sse.mdf 數(shù)據(jù)庫的 Contacts 表中的數(shù)據(jù)。

圖 6 顯示 Visual Studio 客戶端應(yīng)用程序中的 Contacts 數(shù)據(jù)。您可以在 Visual Studio 中用在 Visual Basic Express 中顯示表中數(shù)據(jù)的相同步驟來顯示表中的數(shù)據(jù)。這些步驟包括右鍵單擊 Database Explorer 中的表名稱,然后選擇 Show Table Data 項。

圖 7 顯示來自 Access 項目的相同數(shù)據(jù)。這類項目使用 OLE DB(而不是 .NET 數(shù)據(jù)訪問技術(shù))來連接到 SQL Server Express 數(shù)據(jù)庫。從 Access 連接到 SQL Server Express 數(shù)據(jù)庫的方式與從早期 SQL Server 版本連接到任何數(shù)據(jù)庫的方式相同。在連接到數(shù)據(jù)庫之后,Contacts 表作為一個表出現(xiàn)在 Access Database 窗口中。雙擊 Database 窗口中的表名稱將打開表中的數(shù)據(jù),如圖 7 所示。

小結(jié)

Express 套件以 Visual Studio 開發(fā)人員所熟悉的格式提供大量數(shù)據(jù)庫功能。它提供一種學習 Visual Studio/SQL Server 技術(shù)的低成本且便利的方式。即使 Express 套件官方發(fā)布之后,其組件也將提供一種成本相對較低的方式來在整個組織中推廣 .NET 和 SQL Server 技術(shù)。此策略的一個優(yōu)點是可以輕松地將部門解決方案遷移到企業(yè)解決方案。另外,您將發(fā)現(xiàn) Express 套件應(yīng)用程序很適合執(zhí)行您組織以前采用 Visual Studio 執(zhí)行的一些應(yīng)用程序,從而節(jié)省一些成本。 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ASP.NET中利用VWD操作數(shù)據(jù)庫(1-2)
沒有SQL Server數(shù)據(jù)庫時怎樣打開.MDF文件?
[SQL Server]2005 Express Edition概述6
Win7 附加數(shù)據(jù)庫失敗 錯誤5120
如何安裝數(shù)據(jù)庫 Microsoft SQL Server 2012 SP4 Express?
Microsoft Visual Studio 2005連接Microsoft SQL Server 2000/2005數(shù)據(jù)庫的方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服