摘要:vb.net 存取 access 使用Parameters
在存取ms sql時我們可利用Parameters 來防止隱碼攻擊的語法,若此時換成access時要如何使用呢?
其實原理差不多只是語法上有小小的不一樣,以下是小弟的測試範例
step1:建立相關function,存取access,可以看到其中 OleCmd.Parameters.AddWithValue是用?置換符號。
"-- SchemaGetConnect --"
"----ACCESSupdate----"
"----ACCESSupdate----"
step2:接下來建立一access資料庫。
ps:資料庫密碼可設也可不設,請自行修改SchemaGetConnect
把建好的資料庫放到您專案底下,通常是以下路徑
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\專案名稱\test.mdb
step3:建立測試程式。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim strSQL As String
Dim aryFd As New ArrayList
Dim aryValue As New ArrayList
aryFd.Add("field1")
aryFd.Add("field2")
aryFd.Add("field3")
aryValue.Add("1")
aryValue.Add("2")
aryValue.Add("3")
strSQL = " UPDATE tableName SET field1=?,field2=? WHERE field3=? "
If common.ACCESSupdate(strSQL, aryFd, aryValue) Then
MsgBox("儲存成功")
Else
MsgBox("儲存失敗")
End If
Catch ex As Exception
End Try
End Sub
End Class
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim strSQL As String
Dim aryFd As New ArrayList
Dim aryValue As New ArrayList
aryFd.Add("field1")
aryFd.Add("field2")
aryFd.Add("field3")
aryValue.Add("1")
aryValue.Add("2")
aryValue.Add("3")
strSQL = " UPDATE tableName SET field1=?,field2=? WHERE field3=? "
If common.ACCESSupdate(strSQL, aryFd, aryValue) Then
MsgBox("儲存成功")
Else
MsgBox("儲存失敗")
End If
Catch ex As Exception
End Try
End Sub
End Class
以上是小弟的測試,內容如有錯誤,也請多多包涵。