使用C#+Linq+SQL快速開發業務

ChaoSimple發表於2014-09-18

C#開發桌面程式的效率確實很高,今天就來總結下如何使用C#+Linq+SQL快速開發一個新的業務系統。

Linq是微軟官方的輕量級的ORM工具,使用它結合SQL可以快速的生成實體類,再通過Linq操作可以快速的開發業務。

 

1、生成實體類:

對於已經存在的資料庫結構(SQL Server),可以使用VS自帶的命令列工具生成實體類:

 

image

 

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、最終實現結果:

image

相關文章