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

使用C#+Linq+SQL快速开发业务相关推荐

  1. SQLITE sql 快速搜索

    Sqlite(sql 快速查询) 建表: create  table 删表: drop   table 改表: alter   table { 该表名:      alter table旧表名 ren ...

  2. SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )

    SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需.SQL数据库有很多,MySQL是一种,本文基本都是SQ ...

  3. Lambda表达式 Linq SQL Server 分组后获取第一条数据或最小(最大)数据

    1.Lambda表达式 以下是从网上粘贴下来  经测试失败 提示方法"First"只能用作最终查询操作.请考虑在这个实例中使用方法"FirstOrDefault" ...

  4. spark SQL快速入门 1-9 慕课网

    1.hadoop安装 1.修改hadoop配置文件hadoop-env.shexport JAVA_HOME=/home/hadoop/app/jdk1.8.0_91core-site.xml< ...

  5. 实时数仓建设第2问:怎样使用flink sql快速无脑统计当天下单各流程(已发货,确认收货等等)状态的订单数量

    实时统计当天下单各流程状态(已支付待卖家发货,卖家通知物流揽收,待买家收货等等)中的订单数量. 订单表的binlog数据发送到kafka,flink从kafka接受消息进行指标统计.因为每笔订单的状态 ...

  6. SQL 快速入门2.1

    MySQL  top(MySQL limit)语法 SELECT column_name(s) FROM table_name LIMIT number 例子 SELECT * FROM Person ...

  7. PL/Sql快速执行 insert语句的.sql文件

    当全是 insert语句的.sql文件太大时(insert 语句条数太大),直接打开执行sql文件,pl/sql会卡死. 这是可以用pl/sql的命令窗口来执行.sql文件,操作步骤如下: 1.新建命 ...

  8. LINQ SQL分组取最近一条记录

    最近项目有一个需求,从订单表查询出每个客户最近一条订单记录.数据库表结构如下图 SELECT * FROM (select ROW_NUMBER()over(partition by [custid] ...

  9. SQL快速入门、查询(SqlServer)[郝斌SqlServer完整版]

    文章目录 SQL学前导图 一 .基本信息 1 相关名词 数据库相关基本概念:字段.属性.记录(元祖).表.主键.外键 2 基本语句 3 约束:主键约束.外键约束.check约束.default约束.唯 ...

最新文章

  1. 机器学习和洗衣机的关系?
  2. WCF .net Tcp 错误异常
  3. AI 四巨头 Google、DeepMind、Microsoft、Uber 深度学习框架大比拼
  4. SAP MM 条件类型中PB00的‘Group Cond.‘标记的作用?
  5. .net Core 安装在linux上
  6. (转)淘淘商城系列——实现图片上传功能
  7. C++常见错误:LINK:fatal error LNL1123:转换到COFF期间失败,文件无效或者损坏
  8. jinja Extends Blocks Include
  9. uva 1378 - A Funny Stone Game sg博弈
  10. Mapreduce和Yarn概念,参数优化,作用,原理,MapReduce计数器 Counter,MapReduce 多job串联之ControlledJob(来自学习资料)...
  11. Mootools:Hash中的null值
  12. 文字处理技术:研究下划线,得到一个奇怪的数字4.55
  13. C# 组成结构、数据类型、运算符 以及 基本语法练习
  14. SqlServer 2008还原数据库步骤
  15. 谷歌搜索没有相机图标_关于Google图片网站不能以图搜图的解决方案
  16. Base64和Base64URL加解密
  17. 为什么说信息是负熵?
  18. 面向对象与面向过程编程
  19. Map转为String
  20. imperva ssl加速卡查询

热门文章

  1. 吃自助餐怎么样一个顺序吃法才合算?
  2. DNS解析与Bind的使用(2)
  3. 基于Windows环境下MyEclipse10快捷键总结
  4. centos7系统/etc/resolv.conf 配置DNS客户
  5. G面经prepare: Reorder String to make duplicates not consecutive
  6. 数据结构练习 00-自测1. 打印沙漏(20)
  7. unicode 版本 delphi (如XE2)的 TBytes 转换为 AnsiString
  8. 为什么用lazy启动eclipse的时候,插件activator的start自动被调用
  9. javascript中parentNode,childNodes,children的应用详解
  10. 专为设计师而写的GitHub快速入门教程