Mon*_*key -1 sql vb.net sql-server parameters
我知道我需要参数化我的查询,主要是出于安全原因,我需要帮助这样做.我在Visual Studio 2012和SQL Server 2012中使用VB.我以前从未这样做过,我在网上找到的所有内容似乎都不适合我的特定代码.我认为需要工作的一点如下:
objconnection.Open()
    strSQL = "insert into dbo.Event(ID, Name, Summary, Date) values (NEWID(), '" & strName & "','" & strSummary & "','" & strLocation & "','" & strDate & "')"
    objcmd = New OleDbCommand(strSQL, objconnection)
    objcmd.ExecuteNonQuery()
    objconnection.Close()
    MsgBox("Event Created", vbMsgBoxSetForeground)
任何指针都非常感激.如果您需要更多代码,请告诉我们!
来自评论:
我确实看了那个并尝试过但我遇到了问题.在这一部分:
.add(new SqlParameter("@strname", '"& strName &"'))
它表示"@streventname"和"strName"之间的下划线 Expression expected.
也
Dim cmd As SqlCommand = New SqlCommand(cmdText, objconnection)
objconnection获取错误"类型'System.Data.OleDb.OleDbConnection'的值无法转换为'System.Data.SqlClient.SqlConnection'.
可能是我错过了一些愚蠢的东西.
您正在将SQL对象与OLEDB对象混合.看起来您正在使用OLEDB连接,因此这意味着您必须使用OLEDB对象,因此请使用OleDbCommand而不是SqlCommand等.
您的参数行应如下所示:
.add(new OleDbParameter("@strname", strName))
对于OleDB查询,重要的是要意识到参数实际上忽略了名称@strname,只是按索引顺序更新参数信息.因此,参数在sql语句中出现的顺序必须与您提供参数的顺序相同.