2015-10-29 ado.net 1

                                                               ADO.NET

一.什么是ado.net

    ADO.NET是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。

   它所属类库是:System.Data.dll

二.连接到数据库

    2.1 web.config里面配置

         <connectionStrings>
              <add name="qie_yishen" connectionString="Database=qie_yishen;Server=LENOVO-PC;Integrated Security=false;Uid=sa;Password=123456;"                         providerName="System.Data.SqlClient"/>
         </connectionStrings>

         ////// Integrated Security=True是Windows连接

    2.2  后台调用

          //通过节点的名称,获取节点的字符串 

          //电话号码

          string strCon = ConfigurationManager.ConnectionStrings[“qie_yishen”(结点名,一般为数据库名)].ToString();   //System.Configuration命名空间

三.ado.net对象

    3.1Connection对象,Command对象,SqlDataReader对象

    //创建对象

    SqlConnection con = new SqlConnection(strCon);//电话

    con.Open(); //和数据库建立起连接,拨通电话   

    string strsql = string.Format("select userId from Login where userName='{0}'and userPwd='{1}'", username, pwd);//将字符串获取到内容中,防注入

    SqlCommand cmd = new SqlCommand(strsql,con); //执行sql语句

    SqlDataReader read = cmd.ExecuteReader();//获取sql语句的结果

                if(read.Read())
                {
                    Response.Write("<script>alert('登录成功');</script>");
                    Response.Redirect("Rnewsfind.aspx");    //跳转页面
                }
                else
                {
                    Response.Write("<script>alert('用户名密码错误')</script>");
                }  
                read.Close();
                read.Dispose();
                con.Close();
                con.Dispose();

    3.2Command对象

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

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

        3. ExecuteScalar: 执行查询, 返回查询数。

另:  凡是继承于IDisposable的接口的都要释放资源 譬如:SqlConnection,SqlDataReade

        using 1.引入命名空间 2.释放资源

       所以上面也可以写成:

                using (SqlConnection con = new SqlConnection(strCon))
                {
                    con.Open();
                    string strsql = string.Format("string userId from Login where userName='{0}'and userPwd='{1}'", username, pwd);
                    SqlCommand cmd = new SqlCommand(strsql, con);
                    using (SqlDataReader read = cmd.ExecuteReader())
                    {
                        if (read.Read())
                        {
                            Response.Write("<script>alert('登录成功');</script>");
                        }
                        else
                        {
                            Response.Write("<script>alert('用户名密码错误')</script>");
                        }
                    }
                }

四.字符串拼凑,防sql注入

        StringBuilder sb = new StringBuilder();
        sb.Append("select * from Rnews where 1=1");
        if(!string.IsNullOrEmpty(txtNewid.Text.Trim()))
        {
            sb.Append(string.Format("and newsId={0}", Convert.ToInt32(txtNewid.Text.Trim())));
        }
        if(ddlnews.SelectedIndex>0)
        {
            sb.Append(string.Format("and Title='{0}'", ddlnews.SelectedValue));
        }
        return sb.ToString();

五.数据绑定

       string strsql = Getsql(); 
       using(con = new SqlConnection(strCon))
       {
              con.Open();
              cmd = new SqlCommand(strsql, con);
              using(read=cmd.ExecuteReader())
              {
                    if(read.HasRows)  //获取结果集
                    {                      
                        gvRnews.DataSource = read;  //获取数据源
                        gvRnews.DataBind();        //数据绑定    
                    }
               }
        }

六.fieldset标签

 <fieldset style="width: 405px; height: 53px">
               <legend align="top">查询</legend>
 </fieldset>

  

 

posted @ 2015-11-05 21:11  以深  阅读(193)  评论(0编辑  收藏  举报
TOP