zoukankan      html  css  js  c++  java
  • 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的字段的字符串值

        

  • 相关阅读:
    Silverlight文本元素—高级修饰
    C#常用集合总结2
    Silverlight图片处理——(伸展,裁剪,蒙版)
    选择“Asp.Net Web应用程序”还是“Asp.Net网站”?
    HTML5能给软件初学者带来什么呢?
    性格的弱点
    (原)jvoiplib中的examples的编译和运行
    开源的好东西
    C++编绎器编绎C语言的问题
    gcc生成静态库和动态库(转自http://blog.csdn.net/ast_224/archive/2009/03/13/3988244.aspx)
  • 原文地址:https://www.cnblogs.com/huang3/p/4960463.html
Copyright © 2011-2022 走看看