zoukankan      html  css  js  c++  java
  • ADO.NET基础02(语句参数化,配置文件,DataSet与DataTable)

    ADO.NET连接池

    ado.net默认启用了连接池
    *如何清空连接池?Connection的静态方法ClearAllPools()、 ClearPool()


    Ado.net连接池使用总结:
    1.第一次打开连接会创建一个连接对象
    2.当这个连接关闭时(调用Close()方法时)会将当前那个连接对象放入池中
    3.下一个连接对象,如果连接字符串与池中现有连接对象的连接字符串完全一致,则会使用池中的现有连接,而不会重新创建一个
    4.只有对象调用Close(),的时候才会放入池中,如果一个连接对象一直在使用,则下次再创建一个连接对象发现池中没有,也会再创建一个新连接对象
    5.在池中的连接对象,如果过一段时间没有被访问则自动销毁
    6.使用建议:尽量晚打开,尽量早关闭


    语句参数化

    SQL注入漏洞攻击:构造恶意的Password:hello' or 1=1 --

    防范注入漏洞攻击的方法:不使用SQL语句拼接,通过参数赋值


    查询参数

    SQL语句使用@UserName表示“此处用参数代替”,向SqlCommand的Parameters中添加参数
    cmd.CommandText = "select * from [user] where uUserName=@UserName and uPwd=@Password";
    cmd.Parameters.Add(new SqlParameter(“@ UserName ","admin"));
    cmd.Parameters.Add(new SqlParameter(“@ Password ",password));

    参数在SQLServer内部不是简单的字符串替换,SQLServer直接用添加的值进行数据比较,因此不会有注入漏洞攻击。(带参数的sql语句内部是调用了存储过程)

    SQL Server仅支持已命名参数@arg1,而Oledb、Odbc仅支持通用参数标记(?),不同数据提供程序对参数的写法可能不同。


    配置文件

    将连接字符串写在代码中的缺点:多次重复,违反了DRY(Don't Repeat Yourself)原则;如果要修改连接字符串就要修改代码。将连接字符串写在App.Config中:
    添加App.config文件(文件名不能改):添加→新建项→常规→应用程序配置文件。App.config是.Net的通用配置文件,在ASP.Net中也能同样使用
    在App.config中添加connectionStrings段,添加一个add项,用name属性起一个名字(比如DbConnStr),connectionString属性指定连接字符串
    在“引用”节点上点右键“添加引用”,找到System.configuration。不是所有.Net中的类都能直接调用,类所在的Assembly要被添加到项目的引用中才可以
    ConfigurationManager.ConnectionStrings[" DbConnStr "].ConnectionString得到连接字符串
    如何在部署的程序中修改配置:直接编辑配置文件即可
    注意事项:在app.config配置文件中写连接字符串的时候不需要要加转义符。例如:Data Source=.SQLEXPRESS 即可,不需要写成Data Source=.\SQLEXPRESS

    空值处理说明:进行空值判断,使用DBNull.Value


    DataSet与DataTable

    这是Ado.net的第二大组件,用于断开连接时的数据操作
    DataSet:存在于内存中的临时数据库,数据集
    DataTable:临时表
    为临时数据库创建表,并添加到临时数据库中:ds.Tables.Add(dt);
    为表中创建列DataColumn:需要指定列名、列数据类型:dt.Columns.Add(dc1);
    增加行数据:dt.Rows.Add(...)//如果有自动增长列,则这么写就不正确了
    DataRow dr=dt.NewRow();
    dr[int]或dr[string]访问行中的某列







  • 相关阅读:
    New version of VS2005 extensions for SharePoint 3.0
    QuickPart : 用户控件包装器 for SharePoint Server 2007
    随想
    发布 SharePoint Server 2007 Starter Page
    如何在SharePoint Server中整合其他应用系统?
    Office SharePoint Server 2007 中文180天评估版到货!
    RMS 1.0 SP2
    SharePoint Server 2007 Web内容管理中的几个关键概念
    如何为已存在的SharePoint站点启用SSL
    Some update information about Office 2007
  • 原文地址:https://www.cnblogs.com/CSharpLover/p/5193674.html
Copyright © 2011-2022 走看看