使用C#+Linq+SQL快速开发业务

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、最终实现结果:

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。