亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET中利用VWD操作數據庫

2019-11-18 16:43:40
字體:
來源:轉載
供稿:網友

  VWD2005中包含了SQL Server 2005 ExPRess Edition,它是SQL Server 2005的一個免費版本,它的目標用戶是那些希望用簡單的數據庫解決方案來建立應用程序的非專業的或狂熱的開發者。由于SQL Server Express支持完整的SQL Server編程模型,例如SQLCLR、T-SQL、存儲過程、視圖、觸發器和xml數據類型,你可以使用SQL Server Express來了解這些技術,并且確保自己的應用程序可以運行在更高層次的平臺上(例如SQL Server企業版)。SQL Server Express很容易下載和安裝(它小于36MB),Visual Studio 2005和Visual Web Developer 2005也包括了它。

  Visual Studio包含了用于數據庫管理的工具,例如數據庫瀏覽器(Database Explorer)和查詢構造器(Query Builder),你可以使用它們來管理SQL Server Express數據庫。Visual Studio還支持一種新的基于文件的數據庫,用于建立SQL Server Express數據庫并把它作為項目的一部分。同時,Visual Studio 2005 和SQL Server 2005 Express為建立和部署數據驅動的Web應用程序提供了完整的解決方案,包括下面一些特性:

  · 數據庫項目數據項

  · 本地數據庫連接

  · 數據庫瀏覽器管理

  · 相對路徑連接字符串

  · XCopy部署支持

  · 集成的調試支持

  本文描述Visual Studio 2005中的基于文件的數據庫方式和設計器如何建立和使用這些數據庫。

  Visual Web Developer和數據

  Visual Web Developer為Web應用程序使用數據庫提供了大量的工具。你可以使用數據庫瀏覽器輕易地連接到數據庫并建立或查看數據庫關系圖或大綱(schema)。你還可以使用查詢構造器對話框和查詢結果表格來查詢數據庫和進行數據填充。建立新數據庫(使用本地文件)也是作為項目數據項提供的。

  一旦在Visual Web Developer中連接了數據庫,就可以把數據庫表直接拖放到頁面上,以建立數據綁定的GridView控件。Visual Web Developer自動地建立一個關聯的數據源控件,并根據數據表來配置它的選擇、更新、插入和刪除操作。這種快捷操作為你節省了手動建立數據源所需的大量工作,你也可以輕易地根據需要,用適合的數據綁定控件代替GridView。

  本地和服務器數據庫

  你可能已經熟悉了基于服務器的數據庫和連接字符串。在這種情況下,數據庫服務器(例如SQL Server 2005)把數據庫名稱與服務器所維護的數據庫文件相關聯。你可以通過指定服務器名稱、數據庫名稱和憑證來連接到基于服務器的數據庫,例如:

"server=(local)/SQLExpress;database=Pubs;Integrated Security=true"

  但是,Visual Studio 2005還支持本地數據庫的概念,它是添加到當前Web應用程序的App_Data目錄中的一個文件。在App_Data目錄中存儲數據文件是安全的,因為這個目錄中的內容永遠不會響應用戶的請求。這個目錄也是存儲XML文件和其它數據存儲的推薦位置。本地的SQL Server Express數據庫帶有.MDF擴展名(例如"MyDatabase.MDF"),它是SQL Server支持的標準文件格式。當連接到服務器的時候,數據庫還有一個關聯的日志文件(例如"MyDatabase_log.LDF")。數據庫文件和日志文件的位置必須在一起。

  我們可以通過使用相對路徑連接字符串把本地文件數據庫自動地附加到SQL Server Express。相對路徑確保了應用程序遷移到任何其它地方的時候都不會中斷數據庫連接。Web應用程序中的相對路徑連接字符串如下所示:

"server=(local)/SQLExpress;AttachDbFileName=|DataDirectory|MyDatabase.mdf;Integrated Security=true;User Instance=true"

  上面的連接字符串還有兩個額外的屬性。AttachDbFileName屬性指定連接打開的時候動態附加到服務器上的數據庫文件的位置。盡管這個屬性可以接受數據庫的完整路徑(例如使用|DataDirectory|語法),但是在運行時這個路徑會被應用程序的App_Data目錄所代替。這也保證了應用程序遷移到其它位置的時候連接不會中斷。第二個屬性是User Instance=true,它指定SQL Server Express附加數據庫的方式。在這種情況下,SQL Server Express為了把數據庫附加到新的實例,建立一個新的進程,在打開連接的用戶身份下運行。在asp.net應用程序中,這個用戶是本地的ASPNET帳號或默認的Network Service,這依賴于操作系統。為了安全地附加非系統管理員帳號(例如ASP.NET帳號)提供的數據庫文件,建立一個獨立的SQL Server用戶實例是必要的。

  請注意:由于在默認情況下,所有的ASP.NET應用程序運行在同一個進程下,因此所有的應用程序會把本地數據庫附加到同一個SQL Server Express實例。這意味著不管應用程序最初附加的數據庫是哪一個,所有的應用程序對附加到這個實例的所有數據庫都擁有相同的訪問權限。為了隔離不同的應用程序,你必須讓每個應用程序運行在不同的工作進程或應用程序池(在IIS 6中)中。由于這個原因,本地SQL Server數據庫主要是為了方便開發,而不是用于代替共享主機環境下的基于服務器的數據庫。

  另外一個要點是,不允許兩個用戶同時連接到一個本地數據庫。在Visual Studio中設計應用程序的時候,設計器自動地釋放連接,以保證Visual Studio和ASP.NET能夠共享數據庫文件(例如在設計器中調試運行中的應用程序)。

  建立本地數據庫

  你可以輕易地在Visual Studio的Web應用程序項目中建立本地數據庫。由于Visual Studio安裝了SQL Server Express,你可以使用下面的步驟來建立一個本地數據庫、添加數據表并填充數據。

  建立本地數據庫:

  1. 右鍵點擊解決方案瀏覽器并選擇"添加新項…"選項。

  2. 選擇"SQL數據庫"項并指定一個文件名,例如"Database.mdf"。

  3. Visual Studio提示把這個文件添加到App_Data目錄中。點擊"是"。

  4. Visual Studio添加這個文件并自動地使用數據庫瀏覽器連接到這個數據庫。

  給本地數據庫添加數據表:

  1. 右鍵點擊數據庫瀏覽器中的Tables(數據表)節點并選擇"添加新表"選項。

  2. 輸入數據庫中列的名稱和類型,可以選擇在屬性表格中設置其它一些列屬性。為了建立示例Contacts數據庫,請遵循下面的步驟。

  3. 把第一列的名稱設置為"ContactID",數據類型設置為"int"。取消"允許空"檢查框的選中狀態。

  4. 右鍵點擊ContactID列左邊的灰色方塊并選擇"設置為主健"選項。

  5. 在下方的"列屬性"表格中,展開"標識符規范"節點并把"是否為標識符"設置為"是"。

  6. 把第二列的名稱設置為"ContactName",數據類型設置為"varchar(50)"。讓"允許空"檢查框保持選中狀態。

  7. 按下Ctrl-S保存表并把表名設置為"Contacts"。點擊OK保存表。

  8. 關閉表定義窗口。

  用數據填充表:

  1. 右鍵點擊數據庫瀏覽器中的數據表節點(例如"Contacts")并選擇"顯示表數據"選項。

  2. 在顯示的表格中輸入數據表行的數據。如果使用上面的Contacts示例,你可以在ContactName列中輸入值,數據庫會自動地生成相應的ContactID值。

  3. 關閉表格窗口。

  綁定到本地數據庫

  為了綁定到本地數據庫,你需要使用相對路徑連接來配置ASP.NET數據源控件,以連接到該文件。要把一個SQL Server Express數據庫簡單地綁定到SqlDataSource和GridView控件,可以使用下面的步驟:

  1. 雙擊解決方案瀏覽器中的一個頁面(例如"Default.aspx")。Visual Studio會打開這個頁面。

  2. 選擇頁面窗口底部的"設計視圖"標簽切換到設計視圖。

  3. 雙擊解決方案瀏覽器中的數據庫文件(例如"Database.mdf")。Visual Studio為連接打開數據庫瀏覽器。

  4. 展開Tables節點以顯示數據庫中的表。

  5. 把數據庫瀏覽器中的表拖放到設計視圖中的那個打開的頁面中。Visual Studio建立一個綁定到SqlDataSource控件的GridView。

  6. 展開GridView控件的"智能事務面板",選中分頁、排序和編輯。

  7. 按Ctrl-F5運行頁面(沒有調試)。

  下面的例子顯示了一個連接到本地數據庫的GridView和SqlDataSource控件。為了運行這個示例,ASP.NET進程帳號必須擁有~/App_Data目錄中的MDF和LDF文件的讀/寫權限。這個權限設置過程如下:

  1. 在Windows瀏覽器中選中~/App_Data/Database.MDF文件并選擇"屬性"。

  2. 選擇"安全"標簽并點擊"添加"。

  3. 點擊"位置…",選擇你的計算機名(在列表頂部),并點擊"確定"。

  4. 在對象名稱文本區,輸入ASP.NET進程帳號的名稱。在默認情況下,IIS 6.0中的名稱是"Network Service",IIS 5. x中的是"ASPNET"。

  5. 在"允許"列中選中"讀"和"寫"并點擊"確定"。

  6. 如果App_Data目錄中存在LDF文件,就需要重復上述步驟,設置LDF文件的屬性。

  如果你使用Visual Studio在本地計算機上建立應用程序,那么在默認情況下,你是擁有App_Data目錄的上述權限的。如果某個數據庫文件在被附加之后需要變更權限,你必須在新權限生效之前首先關閉應用程序域(application domain)。

<asp:GridView AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ContactID" DataSourceID="SqlDataSource1" ID="GridView1" runat="server">
<Columns>
<asp:BoundField DataField="ContactID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="ContactName" HeaderText="Name" SortExpression="Name" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:ContactsDatabase %>" ID="SqlDataSource1" runat="server" SelectCommand="SELECT [ContactID], [ContactName] FROM [Contacts]" OnSelected="SqlDataSource1_Selected"></asp:SqlDataSource>

  部署本地數據庫

  本地數據庫文件的優勢之一在于它可以伴隨應用程序、作為應用程序的一部分遷移到其它位置或其它計算機(當然該計算機也必須運行SQL Server Express)。在移動數據庫的時候,該文件必須處于解除鎖定(unlocked)狀態。在設計器或應用程序連接到數據庫的時候,文件會處于鎖定狀態。為了解除鎖定,數據庫的所有活動連接都必須被關閉。你可以使用下面的技術來關閉數據庫的連接:

  · 如果ASP.NET已經打開了連接,你可以通過給Web應用程序根目錄添加一個"app_offline.htm"文件來關閉應用程序域。它的作用就是關閉應用程序域(而不是進程)并把所有的應用程序請求重定向(redirect)到這個文件(返回404響應代碼)。如果要重新啟動應用程序,只需要刪除這個文件。請注意,簡單地在頁面代碼中的關閉連接是不會釋放文件鎖的,因為在默認情況下,ADO.NET連接池會保留活動的連接。

  Visual Studio提供了Copy Web特性,它可以使用xcopy、FTP或FrontPage服務器擴展把應用程序文件從工作目錄復制到目標服務器。目標計算機可以是本地的或遠程的。從Visual Studio菜單條中選擇"Web站點>復制Web站點…"就可以調用Copy Web特性了。

  盡管你可以使用Copy Web或簡單的xcopy或FTP操作來移動數據庫,但是為了讓應用程序繼續工作,目標計算機必須運行SQL Server Express(在同一個實例名下)。前面我們提到,由于ASP.NET運行的所有應用程序都連接到同一個SQL實例,所以目標計算機上的所有應用程序必須彼此信任。如果一個應用程序不能看到其它應用程序的數據庫,那么我們推薦用基于服務器的方法(使用SQL認證或其它分離技術)代替本地數據庫。如果你把SQL Server Express作為開發工具,那么你需要把SQL Server Express數據庫內容作為產品部署的一部分復制給客戶。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产综合久久久久久久久| 日韩成人在线观看| 91视频九色网站| 欧美大肥婆大肥bbbbb| 亚洲va欧美va国产综合剧情| 欧美电影第一页| 久久久久久亚洲精品不卡| 国产精品九九九| 亚洲一区二区三区香蕉| 精品久久久久久久久久国产| 亚洲色图欧美制服丝袜另类第一页| 中文字幕精品www乱入免费视频| 欧美极品少妇xxxxx| 国模私拍视频一区| 97国产一区二区精品久久呦| 一区二区欧美久久| 国产精品久久久久久久久久东京| 日韩精品在线观| 国产视频在线一区二区| 在线视频欧美性高潮| 热久久美女精品天天吊色| 亚洲第一av在线| 中文.日本.精品| 精品久久久一区| 日本国产高清不卡| 亚洲国产成人精品电影| 亚洲高清在线观看| 97超级碰碰碰| 亚洲视频777| 久久久免费电影| 91在线观看免费高清| 日韩在线观看免费全集电视剧网站| 欧美俄罗斯乱妇| 国产精品一区二区三区免费视频| 欧美激情图片区| 欧美猛交免费看| 国产精品视频精品视频| 精品久久久久久久久久久久久| 欧美日韩一区二区免费在线观看| 91亚洲精品在线观看| 在线精品高清中文字幕| 国产精品va在线播放| 日韩中文视频免费在线观看| 黄色91在线观看| 亚洲国产精品yw在线观看| 亚洲欧美另类人妖| 国产精品极品美女在线观看免费| 国产精品一区久久久| 影音先锋欧美精品| 国产精品白丝av嫩草影院| 亚洲精美色品网站| 91九色视频在线| 国产精品午夜一区二区欲梦| 日韩欧美在线观看| 91沈先生作品| 影音先锋欧美在线资源| 国产精品美乳一区二区免费| 青青草国产精品一区二区| 欧美激情视频一区二区三区不卡| 欧美午夜精品伦理| 亚洲精品国产美女| 中文在线不卡视频| 欧美另类第一页| 久久国产精品久久久| 久久久久久久久久久免费| 亚洲福利视频网| 91欧美激情另类亚洲| 久久777国产线看观看精品| 亚洲精品福利在线| 久久精品国产久精国产一老狼| 亚洲国产黄色片| 91成人在线观看国产| 色婷婷综合久久久久中文字幕1| 精品亚洲aⅴ在线观看| 这里只有精品久久| 亚洲欧美精品一区| 中文字幕v亚洲ⅴv天堂| 欧美电影在线播放| 久久久久国产精品免费网站| 日韩电影网在线| 一色桃子一区二区| 亚洲第一国产精品| 国产精品极品美女粉嫩高清在线| 国产精品海角社区在线观看| 国产精品久久久久久久电影| 欧美一区第一页| 亚洲黄色www网站| 狠狠躁夜夜躁久久躁别揉| 亚洲欧洲第一视频| 久久久免费av| 国产精品海角社区在线观看| 久久综合伊人77777尤物| 97高清免费视频| 伊人久久免费视频| 国产xxx69麻豆国语对白| 国自产精品手机在线观看视频| 九九视频这里只有精品| 欧美精品电影免费在线观看| x99av成人免费| 久久视频国产精品免费视频在线| 日韩精品视频在线| 欧美一级成年大片在线观看| 国产精品久久久av| 久久色免费在线视频| 最新中文字幕亚洲| 精品日韩美女的视频高清| 久久亚洲私人国产精品va| 亚洲变态欧美另类捆绑| 欧美激情xxxx| 欧美另类交人妖| 成人午夜小视频| 欧美精品第一页在线播放| 久久精品国产亚洲一区二区| 成人日韩av在线| 亚洲精品国产精品乱码不99按摩| 日韩在线播放视频| 国产91精品久久久久久久| 久久精品中文字幕免费mv| 日韩av电影手机在线| 91精品久久久久久综合乱菊| 国产97在线|亚洲| 欧美一性一乱一交一视频| 亚洲成**性毛茸茸| 日韩av观看网址| 国产精品va在线播放我和闺蜜| 成人黄色av网站| 国产精品海角社区在线观看| 欧美一级黄色网| 亚洲人永久免费| 国产精品∨欧美精品v日韩精品| 欧美日韩国产专区| 亚洲 日韩 国产第一| 国产精品中文字幕在线观看| 亚洲高清一区二| 日韩高清电影免费观看完整版| 欧美国产日韩一区二区| 美女av一区二区| 91精品国产91久久| 91久久久久久久久久| 亚洲tv在线观看| 久久亚洲电影天堂| 色噜噜国产精品视频一区二区| 亚洲网在线观看| 日韩精品高清在线观看| 欧美丰满少妇xxxxx| 日本一本a高清免费不卡| 久久久www成人免费精品| 久久久国产在线视频| 国产视频一区在线| xxxx欧美18另类的高清| www亚洲欧美| 91av福利视频| 亚洲精品aⅴ中文字幕乱码| 日韩av在线资源| 亚洲va欧美va在线观看| 久久免费高清视频| 亚洲天堂av高清| 国产91精品久| 亚洲全黄一级网站| 在线视频亚洲欧美| 欧美尺度大的性做爰视频| 亚洲欧美在线免费| 成人性生交大片免费观看嘿嘿视频| zzjj国产精品一区二区|