你的位置:首页 > 软件开发 > ASP.net > ADO.NET 学习笔记 入门教程

ADO.NET 学习笔记 入门教程

发布时间:2016-03-16 09:00:06
本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=57&page=1&extra=#pid63 这是本人在学习ADP.NET过程中所作的笔记,可作为ADO.NET入门或者复习的教程。 ...

本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=57&page=1&extra=#pid63

 

这是本人在学习ADP.NET过程中所作的笔记,可作为ADO.NET入门或者复习的教程。
cmd.CommandText = "INSERT INTO b1(name, company, position, shijian) VALUES(@Name, @Company, @Position, @Datetime)";        cmd.Parameters.Add(new SqlParameter("Name", Name.Text));        cmd.Parameters.Add(new SqlParameter("Company", Company.Text));        cmd.Parameters.Add(new SqlParameter("Position", Position.Text));        cmd.Parameters.Add(new SqlParameter("Datetime", DateTime.Parse(Datetime.Text)));        cmd.ExecuteNonQuery();
ADO.NET 学习笔记 入门教程注:以上的代码中需要注意一点,在第一种代码中,显示的对各个参数的数据进行了定义,但是在上面这种代码中,并未对参数进行数据定义,所以需要在提供数据时对数据进行适时的转换,例如“shijian”在数据库中定义为DateTime类型,但是其在文本框中获得的为get='_blank'>string类型,所以需要调用DateTime的Parse方法对数据进行转换,如果数据库中的数据是int型,在赋值时也应进行相应的转换。
using(SqlCommand cmd = con.CreateComand()){       //设置SQL语句    cmm.CommandText = "INSERT INTO b1(name, company, position, shijian) VALUES(@Name, @Company, @Position, @Datetime)";    //创建参数,并定义其数据类型,要和数据库中对应的字段保持相同    cmm.Parameters.Add("@Name", SqlDbType.NVarChar);    cmm.Parameters.Add("@Company", SqlDbType.NVarChar);    cmm.Parameters.Add("@Position", SqlDbType.NVarChar);    cmm.Parameters.Add("@Datetime", SqlDbType.DateTime);    //设置参数的值,这些值来自前段的输入信息    cmm.Parameters["@Name"].Value = Name.Text;    cmm.Parameters["@Company"].Value = Company.Text;    cmm.Parameters["@Position"].Value = Position.Text;    cmm.Parameters["@Datetime"].Value = Datetime.Text;    //执行SQL语句    cmm.ExecuteNonQuery();}
ADO.NET 学习笔记 入门教程

 

注:
using(SqlCommand cmd = con.CreateComand()){    Cmd.CommandText = “SELECT语句”;    using(SqlDataReader reader = cmd.ExecuteReader()){While(reader.Read()){        String name = reader.GetString(reader.GetOrdinal(“name”));        //数据处理语句块;    }}}
ADO.NET 学习笔记 入门教程

或者:

ADO.NET 学习笔记 入门教程
DataTable dt = new DataTable();//创建数据表对象dt = order_daset.Tables[0];//填充数据表Response.Write("<table border='1'><tr><th>姓名</th><th>公司</th><th>职位</th><th>入职时间</th></tr>");for (int i = 0; i < dt.Rows.Count; i++){  //按照字段,逐行取出数据表中的内容并显示在页面上  Response.Write("<tr>");  Response.Write("<td>"+dt.Rows[i]["name"].ToString()+"</td>");  Response.Write("<td>"+dt.Rows[i]["company"].ToString()+"</td>");  Response.Write("<td>"+dt.Rows[i]["position"].ToString()+"</td>"); Response.Write("<td>"+DateTime.Parse(dt.Rows[i]["shijian"].ToString()).ToString("yyyy-MM-dd") + "</td>");  Response.Write("</tr>");}Response.Write("</table>");
ADO.NET 学习笔记 入门教程

注:上面的代码主要是数据集的展示功能,需要注意的是填充数据表的语句,是由DataSet对象的Tables属性的下标为0的数据表填充的,这点是非常重要的。

//创建DataAdapter对象实例SqlDataAdapter sqldadp = new SqlDataAdapter("SELECT name, company, position, shijian FROM [UserDate].[dbo].[b1]", con);SqlCommandBuilder scb = new SqlCommandBuilder(sqldadp);//生成插入、删除、更新语句DataSet ds = new DataSet();//创建DataSet对象sqldadp.Fill(ds);//填充DataSetDataRow Myrow = ds.Tables[0].NewRow();//在数据表中创建新的空白记录对象//从前台页面接受要插入的数据Myrow["name"] = Name.Text;Myrow["company"] = Company.Text;Myrow["position"] = Position.Text;Myrow["shijian"] = Datetime.Text;//将接收到的数据添加到DataTable中ds.Tables[0].Rows.Add(Myrow);//更新数据库中的内容sqldadp.Update(ds);Response.Write("添加成功!<br>");
ADO.NET 学习笔记 入门教程

 

注:上面的代码中最关键的一个方法是SqlDataAdapter对象的Update()方法,这个方法的作用是将对数据集所作的改变提交给数据库,这部分代码与上面的展示代码所不同的是DataRow对象的实例所接收的是DataTable中的一行,而不是整个DataTable,其代码为:DataRow Myrow =ds.Tables[0].NewRow(),这句话就是说在原有的DataTable的基础上创建一个新的空行,而下面的代码则是为这个空行赋值并提交更新,同样的,如果是更新数据的话,也是获得DataTable的某一行后,然后对其中的数据进行赋值修改,然后提交,如果是删除操作,则是通过DataTable获取某行后,用DataRow接受,然后再调用DataTable的Rows属性的Remove方法删除,具体如下代码:

 

DataTable dt = ds.Tables[0];dt.Rows.Remove(Myrow);
using (SqlConnection con = new SqlConnection("Data Source = localhost; Initial Catalog = UserDate; Integrated Security = True"))    {  SqlTransaction transql = null;//申明SqlTransaction对象的实例  SqlCommand cmd = new SqlCommand();  try  {    con.Open();//创建数据库链接    transql = con.BeginTransaction();//开始事务处理    cmd.Connection = con;//设置Command对象的链接    cmd.Transaction = transql;//设置Command对象的事务    //设置带参数的SQL语句    cmd.CommandText = "INSERT INTO b1(name, company, position, shijian) VALUES(@Name, @Company, @Position, @Datetime)";    //为参数赋值(注意参数在数据库中的数据类型)    cmd.Parameters.Add(new SqlParameter("Name", Name.Text));    cmd.Parameters.Add(new SqlParameter("Company", Company.Text));    cmd.Parameters.Add(new SqlParameter("Position", Position.Text));    cmd.Parameters.Add(new SqlParameter("Datetime", DateTime.Parse(Datetime.Text)));//注意数据类型转换    //执行SQL语句    cmd.ExecuteNonQuery();    //提交事务    transql.Commit();    Response.Write("添加成功!<br>");  }  catch  {    //如果程序抛出异常则做事务回滚    transql.Rollback();  }}
ADO.NET 学习笔记 入门教程

注:在上面的代码中,特别要注意SqlTransaction的实例接收的是SqlConnection实例的BeginTransaction()的返回值,SqlCommand的实例的Transaction属性接收的是SqlTransaction的实例,即SqlConnection实例的BeginTransaction()的返回值,而整个事务的过程是由SqlCommand实例来书写的,也就是说,在SqlCommand实例里面的代码相对应的事务都由SqlTransaction的实例自动生成,前提是必须要有transql = con.BeginTransaction();cmd.Transaction= transql;这两句代码,最后用SqlTransaction的Commit()方法或者Rollback()对事务进行提交或者回滚

原标题:ADO.NET 学习笔记 入门教程

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。