一,链接打开之后必须关闭,否则会占用系统空间

SqlConnection conn=new SqlConnection(CONNECTIONSTRING);

conn.open();

conn.close();   //必须成对出现

二,在创建命令对象commandText查询时尽量不要用join查询,那样会造成数据访问量加大,可编写多个函数查询多次来完成

三,在运行程序时,为防止编码出错而造成链接关闭不了,要用try--finally把代码包裹起来 ,之后不管try里面的代码出没出错都会执行到finally内的代码

SqlConnection conn=new SqlConnection(CONNECTIONSTRING);

try

{

conn.open();

SqlCommand cmd=conn.Createcommand();

cmd.CommandText="";

cmd.Executexxxxx();

}

finally

{

conn.close();

}

四,如果要从一个表中查询多条内容,可以编写一个函数返回SqlDataReader来简化代码,但还要保证链接能够关闭

static SqlDataReader GetKcDataReader(string name)
{
    SqlConnection conn = new SqlConnection(CONNECTIONSTRING);

conn.Open();
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = "select * from kc where WzName='" + name + "'";
    SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //注意括号内给ExecuteReader添加了一个参数,用来调用的时候关闭链接
    return dr;

}
static decimal GetPrice(string name)
{
decimal price = 0;
SqlDataReader dr = GetKcDataReader(name);
dr.Read();
price = Convert.ToDecimal(dr["price"]);
dr.Close();  //用dr来关闭链接
return price;
}

五,为了防止SQL注入式攻击,在C#中编写sql语句时尽量不要用单引号',而用@xx

SqlConnection conn=new SqlConnection(CONNECTIONSTRING);

try

{

conn.open();

SqlCommand cmd=conn.Createcommand();

cmd.CommandText = "delete from work where infocode=@no";
cmd.Parameters.Clear();  //编码习惯,为了防止@no声明重复,事先清除一下
cmd.Parameters.AddWithValue("@no", no);
cmd.ExecuteNonQuery();

}

finally

{

conn.close();

}

六,执行聚合函数查询的时候,用ExecuteScalar()执行SQL语句,返回首行首列中的值。

cmd.CommandText = "select count(*) from work where infocode=@no";

cmd.Parameters.Clear();  
cmd.Parameters.AddWithValue("@no", no);

int count =(int)cmd.ExecuteScalar();   //ExecuteScalar()返回值为object类型,需强转成int类型

C# 数据访问编码需要遵循的几个规范的更多相关文章

  1. (转)SQLServer_十步优化SQL Server中的数据访问 二

    原文地址:http://tech.it168.com/a2009/1125/814/000000814758_all.shtml 第五步:识别低效TSQL,采用最佳实践重构和应用TSQL 由于每个程序 ...

  2. 分享自己的超轻量级高性能ORM数据访问框架Deft

    Deft 简介 Deft是一个超轻量级高性能O/R mapping数据访问框架,简单易用,几分钟即可上手. Deft包含如下但不限于此的特点: 1.按照Transact-SQL的语法语义风格来设计,只 ...

  3. 在WCF数据访问中使用缓存提高Winform字段中文显示速度

    在我们开发基于WCF访问方式的Winform程序的时候,一般情况下需要对界面显示的字段进行中文显示的解析.如果是硬编码进行中文显示,那么除了不方便调整及代码臃肿外,性能上没有什么问题,但是不建议这样处 ...

  4. 数据访问层DAL(数据库访问抽象类DataProvider)

    晒晒数据访问层DAL,看看你的项目数据访问层使用的是什么形式,数据访问性能比较 采用什么样的数据访问形式是软件编码很重要的一个环节,良好的数据访问形式不仅能够提搞代码的执行效率,协作能力,更重要的是对 ...

  5. 超轻量级高性能ORM数据访问组件Deft,比dapper快20%以上

    超轻量级高性能ORM数据访问组件Deft,比dapper快20%以上 阅读目录 Deft简介 Deft 核心类介绍 Deft 3分钟即可上手使用 其他可选的配置参数 性能测试 Demo代码下载 回到顶 ...

  6. 利用 pandas 进行数据的预处理——离散数据哑编码、连续数据标准化

    数据的标准化 数据标准化就是将不同取值范围的数据,在保留各自数据相对大小顺序不变的情况下,整体映射到一个固定的区间中.根据具体的实现方法不同,有的时候会映射到 [ 0 ,1 ],有时映射到 0 附近的 ...

  7. jdbc数据访问技术

    jdbc数据访问技术 1.JDBC如何做事务处理? Con.setAutoCommit(false) Con.commit(); Con.rollback(); 2.写出几个在Jdbc中常用的接口 p ...

  8. 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案

    1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...

  9. Spring 4 官方文档学习(十)数据访问之JDBC

    说明:未修订版,阅读起来极度困难 1.Spring框架JDBC的介绍 Spring JDBC - who does what? 动作 Spring 你 定义连接参数   是 打开连接 是   指定SQ ...

随机推荐

  1. BZOJ 2431: [HAOI2009]逆序对数列( dp )

    dp(i,j)表示1~i的全部排列中逆序对数为j的个数. 从1~i-1的全部排列中加入i, 那么可以产生的逆序对数为0~i-1, 所以 dp(i,j) = Σ dp(i-1,k) (j-i+1 ≤ k ...

  2. Content Providers的步骤,来自官网文档

    Content Providers In this document Content provider basics Querying a content provider Modifying dat ...

  3. 2014 HDU多校弟五场A题 【归并排序求逆序对】

    这题是2Y,第一次WA贡献给了没有long long 的答案QAQ 题意不难理解,解题方法不难. 先用归并排序求出原串中逆序对的个数然后拿来减去k即可,如果答案小于0,则取0 学习了归并排序求逆序对的 ...

  4. 无线网络wifi (WPA/WPA2)密码破解方法

    无线网络password破解WPA/WPA2教程 本教程用于探索无线路由安全漏洞,禁止用于非法用途,违者法律必究(与我无关) 在动手破解WPA/WPA2前,应该先了解一下基础知识,本文适合新手阅读 首 ...

  5. INS-30001 ADMIN口令为空

    1.错误描写叙述 2.错误原因 管理口令为空.导致出错 3.解决的方法 填写管理口令和确认口令

  6. Winform TabControl控件使用

    运行效果: 代码: /// <summary> /// 添加选项卡 /// </summary> /// <param name="sender"&g ...

  7. stm32中断优先级

    VIC_IRQChannelPreemptionPriority:先占优先级  NVIC_IRQChannelSubPriority:从优先级 高先占优先级中断可以打断低先占优先级的中断,即可中断嵌套 ...

  8. Python3 正则表达式特殊符号及用法(详细列表) http://bbs.fishc.com/thread-57691-1-1.html (出处: 鱼C论坛)

    http://bbs.fishc.com/thread-57691-1-1.html 留待查询用

  9. HDOJ 1384 差分约束

    结题报告合集请戳:http://972169909-qq-com.iteye.com/blog/1185527 /*题意:求符合题意的最小集合的元素个数 题目要求的是求的最短路, 则对于 不等式 f( ...

  10. 小记:css特殊性

    今天早上遇到了个小bug,刚好用从css权威指南学到的知识解决了 html结构 <ul class="portlet-nav"> <li><a id= ...