ADO.NET第2讲

一、再大的网站也是CRUD堆积成的

    CRUD:CREATE、READ、UPDATE、DELETE

    项目的属性中在WEB也签中甚至特定页面启动,再设置端口就可以直接运行某一页面。

    

二、CRUD的处理模式

    1、数据库连接

    2、打开链接

    3、执行SQL命令

    4、关闭链接

    5、释放内存

    

三、调试-优化程序

    1、打断点,一步一步调试。

    2、打开链接时要尽量减少链接持续的时间,与链接无关的一定要放在OPEN之外。

    

四、增、删、改

    1、删除:可根据业务需求做物理删除或逻辑删除。

    2、ButtonField:在GridView中添加按钮

    3、参数化:使用@开头的参数来替代SQL中的可变内容的方法,可以防止SQL注入。

        如:string strSql = "DELETE FROM RNews WHERE  NewsId=@NewsId;";

            using (con = new SqlConnection(strCon))

            {

                con.Open();

                cmd = new SqlCommand(strSql, con);        //建立CMD对象

                cmd.Parameters.Add(new SqlParameter("@NewsId", newsId));   //给CMD对象追加一个参数:@NewsId

                int num= cmd.ExecuteNonQuery();         //没有返回的执行SQL命令的方法,他只返回受影响的行数。

            }

    4、在一个SQL语句结束时最好用【;】来结束,这样如果多个SQL命令时自然就以【;】分割。

    5、增、删、改使用的程序结构完全一样的,只是SQL命令不同。

    6、自增ID或TimeStamp都不需要在INSERTER语句中指定,原因是系统自动添加这几个种类的数据。

    

五、Command对象

    1、ExecuteNonQuery: 执行增删改语句,返回值为该命令所影响的行数。

    2、ExecuteReader: 执行查询,并返回一个 DataReader 对象。

    3、ExecuteScalar: 执行查询,返回查询数,通常用于Count的情况。

    

六、防SQL注入

    用户输入的值或可变的值用参数来传递,这时参数中的内容永远不会当SQL命令来运行。

    ** 参数化查询时课题提高执行计划的利用率,提高整体运行时间。

    ** 在写代码过程中快速规范化代码的方法:Ctrl+K+F

    

2015-11-03 第26课 ADO.NET3

一、DataReader和DataSet的区别

    1、DataReader是只能顺序向前读取的数据结构,占据内存较少,速度较快;DataSet是一次性读入内存后动态(dynamic)方式处理记录(可正向反向兑取数据,也可以指定记录读取)的数据结构,占据内存较多,相对速度较慢。

    2、DataReader处理数据时需要一直连接数据库,但DataSet读取数据后不需要连接数据库。

    3、DataReader只能对一个结果集进行处理,但DataSet里可以存储多个结果集(DataTable)。

    4、DataReader不能缓存,但dataSet可以对数据进行缓存。

    

二、SqlHelper

    事先把常用的ADO.NET程序功能写好放在SqlHelper里,使用时直接调用,缩短开发时间,减少代码的书写量。

    ExecteNonQuery、ExecuteDataSet、ExecuteScalar...等常用功能事先做封装好,需要时调用。

    

三、IsPostBack

    当网页有回发要求时区分第一次回发和其他操作引起的回发请求。

    

四、控件点击事件

    OnClick :服务器端点击事件

    OnClientClick :客户端点击事件

    ** 先执行客户端点击事件,再执行服务器端点击事件。

    

五、页面之间传递参数的方法:Get传值

    在页面URL后面加[?]再加参数名=参数值的方式传递。

    如:<a href="NewsPage.aspx?newsid=<%#Eval("NewsId")%>">详情</a>

    <%#Eval("NewsId")%>"> :绑定当前行的NewsId字段值。

    

六、获取后台程序中的某个变量值

    如:<%=GetNews()%>   //在html中获取GetNews()所返回的值

    ** 字符串拼凑方式可以获得任何一种网页。

    ** 读取DataSet里Tables中的某个字段值的方法

       dt.Rows[0][Title].ToString()    //获得DataSet里dt表中第一个记录中叫Title的字段的字符串值

    

原文地址:https://www.cnblogs.com/huang3/p/4960463.html