我们前面的章节讲了一下如何显示数据库中信息以及DataReader和DataSet的基本用法。
   
  我们这里还是来讲讲DataSet吧,这是一个功能强大的东东,我们在上一节对它有了一个初步的了解,这里我们要讲其如果用来操作数据。也是很简单的东东,但是功能强大,要讲全,不太可能,因为DataSet和DataGrid控件的讲解就占了.Net 帮助的50%以上,而这个总共有23M... 
   
  这里我们建立一个test.mdb数据库,做为测试的数据库,其中有一个名为aspcn的表。   
  不需DataSet的数库操作 
   
  在讲DataSet的应用之前,我们来看看在ASP.net不使用DataSet如何对数据库进行插入,更新,删除. 
   
  要对数据进行插入,更新,删除而又不能用DataSet,没有办法,只有用SQL直接来啦:),我这里只讲一下怎样去插入,因为其它的操作只是改一下SQL语句,我想大家没有问题吧。这里由于使用的是mdb数据库,那么这次就要用ADO.net来操作了。 
   
  我们先看看整个源代码再说 
   
   
  <% @ Page Language="C#" %>
  <% @ Import Namespace="System.Data" %> 
  <% @ Import Namespace="System.Data.ADO" %> 
  <Script Language="C#" Runat="Server"> 
  public string myConnstring="Driver={Microsoft
Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;"; 
  ADOConnection MyConnection;
  public void Page_Load(Object src,EventArgs e) 
  { 
   
   //用户提交数据 
   
  } 
  public void submit_Click(Object
src,EventArgs e) 
  { 
   string username1 = Request.Form["username"];
   string address1 = Request.Form["address"];
   string school1 = Request.Form["shool"]; 
   string strInsert="insert into aspcn(username,address,school) 
  
values('"+username1+"','"+address1+"','"+school1+"')";
   //开始联结 
   try 
   { 
   MyConnection =
new ADOConnection(myConnstring);
   ADOCommand MyCommand = new ADOCommand(strInsert,MyConnection); 
   MyConnection.Open();
   MyCommand.ExecuteNonQuery();
   MyConnection.Close();
   Info.Text="数据已经保存"; 
   } 
   catch(Exception ee)
   { 
   Info.Text="发生错误:"+ee.Message;
   } 
   
  } 
  </script> 
  <html> 
  <head> 
  <title></title> 
  </head> 
  <body> 
  <asp:Label id="Info" runat=server /><br> 
  <form runat="server">
   用户名:<input type="text" name="username"
size="20" ><br> 
   住址:<input type="text" name="address"
size="20" ><br> 
   学校:<input type="text" name="school"
size="20" ><br> 
   <input type="button"
value="提交" runat="server" OnServerClick="submit_Click" > 
   <p>1</p> 
  </form> 
  </body> 
  </html> 
   
   
  上面的程序执行情况看下面两个图: 
   
   
  图8-2 执行前 
   
  图8-3 执行后 
   
   
  因为我们是用的Access,所以首先就要申明一下啦 
   
  <% @ Import Namespace="System.Data" %> 
  <% @ Import Namespace="System.Data.ADO" %> 
   
  表明我们这里使用的是ADO.net. 
   
  我们提交入数据库的数据,来自于用户的输入,这里使用的是一个我们常见到的<form>表单,初一看和普通的没有什么区别,但是我们仔细看看它的<form>中的属性是什么,runat="server",呵呵,就是这么一个小小的标签,这个程序的性质就变啦。这表明他是一个Web
Form了。这里我用了HTML控件,目的就是为了让大家看看ASP.net和ASP到底有哪些区别。 
   
  <form runat="server"> 
  用户名:<input type="text" name="username" ><br> 
  住址:<input type="text" name="address" ><br> 
  学校:<input type="text" name="school" ><br> 
  <input type="button"
value="提交" runat="server" OnServerClick="submit_Click" > 
  </form> 
   
  在上面的代码,有一点需要注意就是,触发button控件提交事件处理的是OnServerClick,这里大家很少有注意,因为大家使用WEB控件已成习惯,很容易就用了OnClick事件,呵呵,这种错误很难发现,错了都不知道怎么错的:) 
   
  下面我们就该在Submit_Click中处理提交事件了,首先是收集信息,这里我们又看到了久违的Request对象和Form方法。这个和ASP几乎是一模一样的,我也不想多说了。 
   
  string username1 = Request.Form["username"];
  string address1 = Request.Form["address"];
  string school1 = Request.Form["shool"]; 
   
  接下来就是将收集来的数据写入数据库,关于数据库的打开和执行,我们上一节也讲过了。这里也就不罗嗦了。注意一下SQL语句的正确性就行。 
   
  string strInsert="insert into aspcn(username,address,school)
values('"+username1+"','"+address1+"','"+school1+"')";
   
  大家也要注意一下我的联结语句(因为很多人来问我,如何连结mdb数据库,其实和asp是一样,最主要是大家有些人不愿意自已动手去实践,问人已经成为了习惯) 
   
  public string myConnstring="Driver={Microsoft
Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;"; 
   
  这里联结Access最实用的语句(个人认为),其实还有好多种写法。比如: 
   
  Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:/test/test.mdb 
   
  Data Source=aspcn