2015-10-29 ado.net 1
一.什么是ado.net
ADO.NET是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。
二.连接到数据库
<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>