1. 首先从connection来进行比较 <asp>
   
 <初始化>
   Dim connstring As String
   Set conn1 = New ADODB.Connection
   connstring = "PROVIDER=MSDASQL;dsn=wpff;uid=sa;pwd="
   
   conn1.Open connstring
<常用操作>
   conn1.execute sqlstring<asp.net>
   <初始化>
   'sql数据库
   Dim mysqlconn As SqlConnection
   mysqlconn = New SqlConnection("user id=sa; password=; initial catalog=wpff; Server=192.168.1.2)
   mysqlconn.Open()
   'access数据库或其它数据库连接
   dim myaccessconn as oledbconnecion
   myaccessconn=new oledbconnection(.....)
   myaccessconn.open<常用操作>
   无------------------------------------------------------
从connection的比较来看,asp中的connection还更方便灵活。
特别是如果你要变更数据库时,在asp.net中会是一件很麻烦的事,因为数据连接的对象不同了2. ASP中数据操作主要对象recordset与asp.net中数据操作主要对象dataset,datatable,datarow的比较<asp>
    <初始化>
    Set rs1 = New ADODB.Recordset
    mSqlString = "select * from ly"
    rs1.Open mSqlString, conn1, adOpenDynamic, adLockOptimistic, adCmdText
    
    <常用操作>
    '添加
    rs1.AddNew
    rs1.Fields(0).Value = Text1.Text
    rs1.Update
    
    '删除
    mCmdString = "DELETE FROM ly WHERE 序号= 1"
   '调用sql语言来删除记录
    conn1.Execute mCmdString
    
    '修改
    rs1.open "select * from ly where 序号=1" '序号为唯一值
    rs1("字段名")="修改值"
    rs1.update
<asp.net>
    <初始化>
     Dim objCmd As New SqlDataAdapter("select * from ly ", mysqlconn)
     Dim ds As New DataSet
     objCmd.Fill(ds, "ly")    <常用操作>
     '添加
      datarow中倒有类似的操作,但是麻烦得不得了
      先要设置dataadapter对象的insertcommand属性及其参数
      objcmd.insertcommand=new sqlcommand()
      objcmd.insertcommand.commandtext="insert into ly(序号,工号,数量)values (@序号,@工号,@数量)"
      objcmd.insertcommand.connection=mysqlconn
      objcmd.insertcommand.parameters.add("@序号",sqltype.int,4,"序号")
      objcmd.insertcommand.parameters.add("@工号",sqltype.int,4,"工号")
      objcmd.insertcommand.parameters.add("@数量",sqltype.int,4,"数量")
      
      '须建立一个dataset对象  
      dim ds as new dataset()
      objcmd.fill(ds,"ly")
      
      '须建立一个datatable对象
      dim mytalbe as datatable =ds("ly")
      '须建立一个datarow对象
      dim myrow as datarow=mytable.newrow()
      '到这后,才到正角了
      myrow("序号")=123
      myrow("工号")=3456
      myrow("数量")=2
      mytable.rows.add(myrow)
     
      '更新到数据库
      objcmd.update(ds,"ly")      '到这里,添加操作终于完成了。累..............
         '删除
      objcmd.deletecommand = new sqlcommand()
      objcmd.deletecommand.commandtext="delete from ly where 序号=@序号"
      objcmd.connection=mysqlconn
      objcmd.deletecommand.parameters.add("@序号",sqltype.int,4,"序号")
      '须建立一个dataset对象  
      dim ds as new dataset()
      objcmd.fill(ds,"ly")
      
      '须建立一个datatable对象
      dim mytalbe as datatable =ds("ly")
      '须建立一个datarow对象
      mytable.rows(4).delete()       '终于删除了................
    '修改
      '想修改,要先设置dataadapter的updatecommand否则程序会出错。
      objCmd.UpdateCommand.CommandText = "update ly set 领用数量=@领用数量 where 序号=@序号"
      bjCmd.UpdateCommand.Connection = mysqlconn
      objCmd.UpdateCommand.Parameters.Add("@序号", SqlDbType.Int, 4, "序号")
      Dim ds As New DataSet
      objCmd.Fill(ds, "ly")
      mysqlconn.Close()
      Dim mytalbe As DataTable = ds.Tables(0)
      objCmd.UpdateCommand.Parameters.Item("@领用数量").Value = TextBox1.Text
      objCmd.UpdateCommand.Parameters.Item("@序号").Value = 5
      objCmd.UpdateCommand.ExecuteNonQuery()
     ------------------------------------------------------------------------------------------------
从上面比较看来,如果在ASP.net中不借助类似于如下的直接在sql语言上的数据库操作:
        Dim mysqlconn As SqlConnection
        mysqlconn = New SqlConnection("user id=sa; password=; initial catalog=wpff; Server=192.168.1.2; )
        mysqlconn.Open()
        '建立一个sqlcommand对象来更新,删除数据
        strsql= 操作数据库的sql语句 如:insert into ly(序号,工号,数量)values (11,11,11)
        Dim objcmd As New SqlCommand(strsql, mysqlconn)
        objcmd.ExecuteNonQuery()那么,你想在asp.net中对数据库进行添加删除,更改这些基本操作会是一件很痛苦的事。但如果直接用sql语言直接操作的话,添加,更改
老是感觉不是很清晰,条理。集中在一条sql语句中。程序也不直观了。
这就是小弟在最近学习asp.net时。在数据库连接方面的一些感受,可能asp.net学的时间比较短吧,还没有精研。
不知那位大大对在asp.net中的数据库连接有没有什么好的高效一点的方法。盼教。

解决方案 »

  1.   

    不麻烦啊,
    变更数据库
    myconn.ChangeDataBase("NewDateBase")不就换了吗.
    用参数也很方便.
    而且大多对数据库操作都是调用存储过程和触发器,
    页面要写sql语句很少啊.
      

  2.   

    变更数据库是指从sqlserver转到别的数据库库便access或oracle之类的。
    另外不好意思,我现在在程序中还很少调用存储过程,大多是直接的sql语方操作。汗...
    可能我还是在比较浅的层次吧。再学学看,再发贴子。-_-
      

  3.   

    用存储过程要比直接用sql语句快,消耗系统资源也少,比较提倡。