欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

使用Visual Studio 2008進行數據層開發

系統 1971 0
LINQ是Visual Studio 2008在重要內容之一,本節也主要是介紹如何利用LINQ來構建我們的數據層。
在本篇文章中用到了C#3.0的新特性,不了解的朋友可以到我的另一個系列《 C#3.0 為我們帶來什么 》中查看,本篇中不再做過多介紹。
在數據庫中建立City、Module、Province、User、UserGroup 5個表,如圖1。


圖1


數據庫腳本



if exists (select * from sysobjects where id = OBJECT_ID('[Citys]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [Citys]
CREATE TABLE [Citys] ( [CityID] [int] IDENTITY (1, 1) NOT NULL , [Name] [nchar] (10) NULL , [ProvinceID] [int] NULL , [Code] [nchar] (20) NOT NULL )
ALTER TABLE [Citys] WITH NOCHECK ADD CONSTRAINT [PK_Citys] PRIMARY KEY NONCLUSTERED ( [CityID] )

SET IDENTITY_INSERT [Citys] ON

INSERT [Citys] ( [CityID] , [Name] , [ProvinceID] , [Code] ) VALUES ( 6 , '濟南 ' , 1 , 'jinan ' )
INSERT [Citys] ( [CityID] , [Name] , [ProvinceID] , [Code] ) VALUES ( 7 , '青島 ' , 1 , 'qingdao ' )
INSERT [Citys] ( [CityID] , [Name] , [ProvinceID] , [Code] ) VALUES ( 8 , '泰安 ' , 1 , 'taian ' )

SET IDENTITY_INSERT [Citys] OFF

if exists (select * from sysobjects where id = OBJECT_ID('[Modules]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [Modules]
CREATE TABLE [Modules] ( [ModuleID] [int] IDENTITY (1, 1) NOT NULL , [Name] [nchar] (20) NULL , [Comments] [nchar] (50) NULL , [Code] [nchar] (20) NOT NULL )
ALTER TABLE [Modules] WITH NOCHECK ADD CONSTRAINT [PK_Modules] PRIMARY KEY NONCLUSTERED ( [ModuleID] )

SET IDENTITY_INSERT [Modules] ON

INSERT [Modules] ( [ModuleID] , [Name] , [Code] ) VALUES ( 1 , '用戶管理 ' , 'ManageModule ' )

SET IDENTITY_INSERT [Modules] OFF

if exists (select * from sysobjects where id = OBJECT_ID('[Provinces]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [Provinces]
CREATE TABLE [Provinces] ( [ProvinceID] [int] IDENTITY (1, 1) NOT NULL , [Name] [nchar] (10) NULL , [Code] [nchar] (20) NOT NULL )
ALTER TABLE [Provinces] WITH NOCHECK ADD CONSTRAINT [PK_Provinces] PRIMARY KEY NONCLUSTERED ( [ProvinceID] )

SET IDENTITY_INSERT [Provinces] ON

INSERT [Provinces] ( [ProvinceID] , [Name] , [Code] ) VALUES ( 1 , '山東 ' , 'shandong ' )
INSERT [Provinces] ( [ProvinceID] , [Name] , [Code] ) VALUES ( 2 , '北京 ' , 'beijing ' )
INSERT [Provinces] ( [ProvinceID] , [Name] , [Code] ) VALUES ( 3 , '上海 ' , 'shanghai ' )

SET IDENTITY_INSERT [Provinces] OFF


if exists (select * from sysobjects where id = OBJECT_ID('[UserGroups]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [UserGroups]
CREATE TABLE [UserGroups] ( [GroupID] [int] IDENTITY (1, 1) NOT NULL , [Name] [nchar] (10) NULL , [Comments] [nchar] (100) NULL , [ModuleID] [int] NULL , [Code] [nchar] (20) NULL )
ALTER TABLE [UserGroups] WITH NOCHECK ADD CONSTRAINT [PK_UserGroups] PRIMARY KEY NONCLUSTERED ( [GroupID] )

SET IDENTITY_INSERT [UserGroups] ON

INSERT [UserGroups] ( [GroupID] , [Name] , [Comments] , [ModuleID] , [Code] ) VALUES ( 1 , '普通用戶 ' , '普通用戶 ' , 1 , 'pt ' )
INSERT [UserGroups] ( [GroupID] , [Name] , [Comments] , [ModuleID] , [Code] ) VALUES ( 2 , '管理員 ' , '管理員 ' , 1 , 'admin ' )

SET IDENTITY_INSERT [UserGroups] OFF

if exists (select * from sysobjects where id = OBJECT_ID('[Users]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [Users]
CREATE TABLE [Users] ( [UserID] [int] IDENTITY (1, 1) NOT NULL , [UserName] [nchar] (50) NULL , [Password] [nchar] (50) NULL , [NickName] [nchar] (50) NULL , [GroupID] [int] NULL , [ProvinceID] [int] NULL , [CityID] [int] NULL , [EMail] [nchar] (50) NULL , [Question] [nchar] (20) NULL , [Answer] [nchar] (20) NULL , [Birthday] [nchar] (8) NULL , [RealName] [nchar] (10) NULL , [Sex] [bit] NULL )
ALTER TABLE [Users] WITH NOCHECK ADD CONSTRAINT [PK_Users] PRIMARY KEY NONCLUSTERED ( [UserID] )

SET IDENTITY_INSERT [Users] ON

INSERT [Users] ( [UserID] , [UserName] , [Password] , [GroupID] , [ProvinceID] , [CityID] ) VALUES ( 2 , 'admin ' , 'admin ' , 1 , 1 , 6 )
INSERT [Users] ( [UserID] , [UserName] , [Password] , [NickName] , [EMail] , [Question] , [Answer] , [Birthday] , [Sex] ) VALUES ( 3 , 'tianyamoon ' , '19820603 ' , '岳亮 ' , 'tiger133@163.com ' , '我就讀的第一所學校的' , ' ' , '1982010' , 0 )
INSERT [Users] ( [UserID] , [UserName] , [Password] , [NickName] , [EMail] , [Question] , [Answer] , [Birthday] , [Sex] ) VALUES ( 4 , 'tianyamoon ' , '19820603 ' , ' ' , 'tiger133@163.com ' , '我就讀的第一所學校的' , ' ' , '1982010' , 0 )

SET IDENTITY_INSERT [Users] OFF


打開上次創建的項目,按下Ctrl+W再按下Ctrl+L使用組合快捷鍵打開Server Explorer面板。


圖2

點擊黃色區域,添加數據鏈接,彈出如圖3所示窗口.


圖3

輸入服務器名稱及用戶名、密碼,并選擇執行腳本的數據庫,確定完成。
通過圖4中展開的菜單,建立數據庫連接。將上面的SQL腳本粘貼進打開的編輯器,按下F5執行向數據表插入演示數據。


圖4

選中我們的項目使用快捷鍵Ctrl+Shift+A 選中Data,選中Linq to Sql Classes類型的文件,輸入名稱SecurityData.dbml按下確定。


圖4

將圖5中的5個表拖放到圖6中的黃色位置。


圖5


圖6

保存文件,這樣我們的數據庫映射就建好了。

好,我們介紹下如何使用這個映射。創建一個WebForm,并在WebForm的OnLoad函數中輸入下列代碼來測試。

1 SecurityDataDataContext db =
new SecurityDataDataContext();
2 var a = db.Users;
3 var b = a.GetNewBindingList();
在第一行設置斷點。將剛創建的webform設為起始葉,按F5調試程序。打開Sql Server Profiler 連接到我們的數據庫并開始跟蹤。按下F10程序運行完第一行,通過Sql Server Profiler可以發現此時并未執行任何sql操作。F10繼續運行第二行依然沒有執行,繼續??梢园l現此時我們的程序建立了數據庫連接,并且執行了下列sql。
SELECT
[t0].[UserID], [t0].[UserName], [t0].[Password], [t0].[NickName], [t0].[GroupID], [t0].[ProvinceID], [t0].[CityID], [t0].[EMail], [t0].[Question], [t0].[Answer], [t0].[Birthday], [t0].[RealName], [t0].[Sex]
FROM
[dbo].[Users]
AS
[t0]
說明LINQ通過數據映射生成了SQL,并返回了數據。好,我們看看它返回給我們什么。


圖7

通過快速監視可以看到,返回的是一個User對象的集合。
下面我們來看下如何插入數據,通過 初始化器 創建User對象.

Users u =
new Users()

{
UserName =
"tianyamoon",
NickName =
"岳亮",
Password =
"aaaaaa",
EMail =
"yueliang0603@163.com",
Birthday =
"19820101",
Sex =
true
};
通過db.Users.InsertOnSubmit(u);向集合插入一個對象。然后再執行submit操作db.SubmitChanges();。
大家可以通過上面的方法跟蹤SQL執行的情況。
那么LINQ是如何執行Updata操作的呢,其實這個更簡單。只要我們修改了User對象,只要執行db.SubmitChanges();函數就可以將新的數據更新入數據庫了。

還有一個問題,我們的連接字符串是如何處理的呢?那么我就來揭示這個小秘密吧,打開項目的 Properties文件夾,秘密就在Settings.settings里。

使用Visual Studio 2008進行數據層開發


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美一级在线观看视频 | 久草在线精品视频 | 男女在线观看啪网站 | 91久久久久久久久久久 | 国产精品婷婷久久久久 | 国产精品久久久久久久久免费 | 国产成人精品视频频 | 国产精品成人国产乱一区 | 超碰97最新 | 成人久久免费视频 | 天天爱天天做天天干 | 韩国男女无遮挡高清性视频 | 色综合色综合色综合 | 亚洲一区播放 | 久草免费在线视频 | 免费很黄很色裸乳在线观看 | 九热视频在线观看 | 日韩av线上| 高清国产一区二区三区四区五区 | 日韩欧美一区在线观看 | 十六以下岁女子毛片免费 | 欧美激情一区二区三区中文字幕 | 久久久久亚洲精品 | 懂色中文一区二区三区在线视频 | 亚洲欧美韩国日产综合在线 | 成人午夜精品一区二区三区 | 久久机热 | 国产精品欧美一区二区三区不卡 | 在线一区二区三区做爰视频网站 | 96国产xxxx| 国产三级在线观看a | 亚洲高清在线看 | 亚洲午夜精品aaa级久久久久 | 亚洲免费三区 | 成人欧美日韩视频一区 | 一级做a爱片特黄在线观看yy | 午夜大片免费男女爽爽影院久久 | 日韩av在线中文字幕 | 亚洲在线视频观看 | 999毛片| 国产在亚洲线视频观看 |