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中的数据库连接有没有什么好的高效一点的方法。盼教。
解决方案 »
- 类库项目中有"SqlXml.Load(MapPath("SqlStr.xml"));"文件路径该怎么写?
- js如何判断是否已收藏了某一个网站?
- asp.net安装包+数据库安装问题,高手帮忙看下。。。
- 一个多选的listbox怎么实现双击添加?
- vs2005 gridview 动态增加一列
- 急,怎样解决asp.net中刷新与isPostBack冲突问题
- 如何改变treeview节点的字体?
- 如何将ArrayList绑定到DataGrid或DataList?
- ▲▲▲再加100分,看过《asp.net web站点高级编程》的朋友请进▲▲▲▲▲▲▲▲▲▲▲▲▲
- 我用ASP.NET C#写程序时为什么一向数据库写入大数据时就出现这种情况?
- 怎么给hidden赋值
- 强制类型转换
变更数据库
myconn.ChangeDataBase("NewDateBase")不就换了吗.
用参数也很方便.
而且大多对数据库操作都是调用存储过程和触发器,
页面要写sql语句很少啊.
另外不好意思,我现在在程序中还很少调用存储过程,大多是直接的sql语方操作。汗...
可能我还是在比较浅的层次吧。再学学看,再发贴子。-_-