我試圖執行創建一個給定的用戶名用戶(通過SQL參數)SQL Server中創建與參數(VB.net)USER
exec sp_executesql N'CREATE USER @LoginName
FOR LOGIN @LoginName;',
N'@LoginName varchar(5)', @LoginName='myuser'
繼承人的代碼生成那上面:
Dim myCommand As SqlCommand = New SqlCommand("CREATE USER @LoginName
FOR LOGIN @LoginName;",
ClassDatabaseConnection.CustomInstance)
myCommand.CommandType = CommandType.Text
myCommand.Parameters.Add("@LoginName", SqlDbType.VarChar).Value = LoginName
myCommand.ExecuteScalar()
我得到和錯誤:
Incorrect syntax near '@LoginName'.
我認爲這是由於爲varchar被傳遞的參數導致「MYUSER」,而比MyUser
我不能用sql參數來做這個嗎?
我試圖避免這種情況,由於SQL注入。 – madlan 2010-10-16 19:09:48
@madlan,請注意,但您可以在提交之前始終在您的登錄名中檢查錯誤字符。分號,引號和雙連字符是一個很好的起點。就我個人而言,我從來不會在用戶名中允許這些字符。 – Brad 2010-10-18 12:19:29
好點布拉德,這是你的建議。 – madlan 2010-10-19 20:14:04