主题:  菜鸟问:Dataset的Fill方法可以影响到数据库吗?

恐龙特急克塞号

职务:普通成员
等级:3
金币:3.0
发贴:948
#12003/12/10 14:32:57
偶是初学者。看了些简单的介绍,有点疑问。很多资料上都说dataset的fill方法只是将东西写入dataset() 的表中,并不会直接影响到数据库中的内容;可我看了一个简单的范例,其中也没有update等其他方法,好象就用了Fill方法,就可以实现对数据库内容的更新。
----------------------------------------------------------------------------------------------------------------------
Sub Button4_Click(Sender As Object, e As EventArgs)
Dim SqlStr,ConnStr As String
SqlStr="Insert Into member values('" & AddAcc.Text
SqlStr += "', '" & AddPwd.Text & "', '" & AddTel.Text
SqlStr += "', '" & AddAddress.Text & "', '" & AddMail.Text
SqlStr += "')"
Connstr="Provider=Microsoft.Jet.OLEDB.4.0;"
Connstr += "Data Source=" & Server.MapPath("member1.mdb")
Dim Da As New OleDbDataAdapter(SqlStr, ConnStr)
Dim Ds As New DataSet()
Da.Fill(Ds,"members")
Da.SelectCommand.CommandText="Select * From member"
Da.Fill(Ds,"members")
LoadData(Ds)
Panel1.Visible=True
AddRec.Visible=False
End Sub
----------------------------------------------------------------------------------------------------------------------
想请大家指点一下,是我理解错了吗?上面的代码中哪一点是实现对数据库内容的操作的呢?我试验了一下,如果将倒数第7行的那句去掉,数据库就不受影响,但是添加新记录的操作也会无法实现。
附:整个源代码,rar压缩,请朋友们帮忙抽空看看。

相关文件:点这儿打开


克塞,前来拜访!

恐龙特急克塞号

职务:普通成员
等级:3
金币:3.0
发贴:948
#22003/12/10 18:17:36
问题是上面的例子中明明没有用到其他的方法啊,我个人感觉就是da.fill才有可能对数据库进行改动了。要不是其他哪处实现的呢?!也许是我钻牛角了,大家能看看源代码就更好,很短小简单的。


克塞,前来拜访!

恐龙特急克塞号

职务:普通成员
等级:3
金币:3.0
发贴:948
#32003/12/10 20:07:14
在资料上看到这样一段话:● 用DataSet记录的数据其实就是一个表,而对表的操作,只是对DataSet的操作,并没有改变数据库,而要到DataSet更新的时候,才完整的写入数据库,这个往往是新手容易忽视的地方。●
“而要到DataSet更新的时候,才完整的写入数据库”--这是否意味着无须加其他代码,dataset中的东西也会自动在更新后写回数据库内呢?!困惑中--------


克塞,前来拜访!

恐龙特急克塞号

职务:普通成员
等级:3
金币:3.0
发贴:948
#42003/12/11 18:56:33
哦,知道了。对数据库的更改还是通过dataadapter对象类型的Da来实现的。只不过是通过Da.Fill的时候激活了Da,使其通过指定的SqlStr, ConnStr来完成对数据库的操作。如果不要这句,换成其他的语句,只要可激活Da,同样可实现效果。


克塞,前来拜访!