我一直在vb.net中使用直接SQL查询在我的上一个项目中进行插入,更新和删除,我发现直接查询存在很多问题,所以我最终决定切换到参数化的查询方式,是更安全的编码方式。以下是我在我的程序中使用的内容,我现在已经退出并尝试完全采用参数化的查询方式。
我如何使用直接查询进行编程如下: 我有一个模块,其中我有插入,更新和删除功能,它们从所有形式的应用程序接收值并处理它并返回数据。这是我的模块代码:
#Region "Insertion"
''' <summary>
''' Simple Insert Function
''' </summary>
''' <param name="tblName"></param>
''' <param name="columns"></param>
''' <param name="parameters"></param>
''' <remarks></remarks>
'''
Public Sub Insert(ByVal tblName As String, ByVal columns As String, ByVal parameters As String)
Try
cmdSql1.CommandText = "insert into " & tblName & "(" & columns & ") values (" & parameters & ")"
cmdSql1.Connection = Connect()
cmdSql1.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
#End Region
我从表单发送的数据如下所示,将tblName,Columns和Parameters作为字符串输入到三个组中(“tblName”,“Columns”,“Parameters”)。
Insert("CustomerInfo", "CustomerName, CustomerAddress, CustomerContact", "'" & txtCustName.Text.Trim & "','" & txtCustAddress.Text.Trim & "'," & txtCustContact.Text.Trim & "")
MessageBox.Show("Customer Addedd Successfully")
txtCustName.Clear()
txtCustAddress.Clear()
txtCustContact.Clear()
txtCustName.Focus()
同样的情况是模块等的选择和更新查询。
现在我想用参数化的方式开始我的新项目,但是如何以参数化方式完成所有这些。 Pleassseee指导我如何让sql注入方式返回并加入参数化的。