zoukankan      html  css  js  c++  java
  • 使用C#+Linq+SQL快速开发业务

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

    image

  • 相关阅读:
    新一代MQ apache pulsar的架构与核心概念
    Flutter使用fluwx实现微信分享
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
    Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
    Codeforces 873E Awards For Contestants ST表
  • 原文地址:https://www.cnblogs.com/chaosimple/p/3978802.html
Copyright © 2011-2022 走看看