2015-10-29 ado.net 1

时间:2023-03-09 00:01:13
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>