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