C#開發桌面程式的效率確實很高,今天就來總結下如何使用C#+Linq+SQL快速開發一個新的業務系統。
Linq是微軟官方的輕量級的ORM工具,使用它結合SQL可以快速的生成實體類,再通過Linq操作可以快速的開發業務。
1、生成實體類:
對於已經存在的資料庫結構(SQL Server),可以使用VS自帶的命令列工具生成實體類:
sqlmetal工具可以用來對SQL Server資料庫快速生成C#中的實體類,具體引數:
/server引數指定伺服器名稱
/database引數指定資料庫名稱
/namespace引數指定生成程式碼的名稱空間
/code引數指定生成程式碼名稱
2、在C#中對實體類的操作:
1: /*
2: * Shifenzheng是資料庫實體類名稱,繼承自System.Data.Linq.DataContext
3: * 例項化時,引數為資料庫的連線字串。
4: *
5: */
6: Shifenzheng db = new Shifenzheng(@"Data Source=CHAO-COMPUTER\MSSQLSERVER_R2;Initial Catalog=Shifenzheng;User ID=sa;Password=123123123;");
7:
8: public frmMain()
9: {
10: InitializeComponent();
11: }
12:
13: private void sbSearch_Click(object sender, EventArgs e)
14: {
15:
16: string strName = teName.Text.Trim();
17: if (strName.Length==0)
18: {
19: MessageBox.Show("請輸入查詢條件!");
20: return ;
21: }
22:
23: /*
24: * Linq語句返回的是System.Linq.IQueryable<KF_Search.Tbl> {System.Data.Linq.DataQuery<KF_Search.Tbl>}物件。
25: * 該物件只能通過foreach來迴圈訪問。
26: * 因此將其轉換為List物件作為表格控制元件的資料來源。
27: */
28: var kfer = from cc in db.Tbls
29: where cc.Name == strName && cc.Mobile!=""
30: select cc;
31: var dataList = kfer.ToList();
32:
33: //設定gridControl物件的資料來源
34: gcDetails.DataSource = dataList;
35: gcName.FieldName = "Name";
36: gcGender.FieldName = "Gender";
37: gcMobile.FieldName = "Mobile";
38: gcIDCard.FieldName = "CtfId";
39: gcEmail.FieldName = "EMail";
40: gcAddress.FieldName = "Address";
41:
42: MessageBox.Show("總共搜尋到 "+dataList.Count+" 條記錄!");
43: }
3、最終實現結果: