【发布时间】:2016-11-30 14:06:42
【问题描述】:
我的 vb.net 应用程序中有一个 INSERT 语句。一路走来……
SQL = " Insert into tableA (Value1, Value2, Value3) Values (Mark1, City2, State3) "
我想要做的是将它传递给一个实际插入 SQL 语句的函数。我正在尝试在 LOG 表中插入此 sql 语句的副本。
Public Function (InsertSQL as String) As Boolean
nSql = "INSERT INTO tblSQLLOG ( InsertSQL, Date, User) VALUES ( "
nSql += "'" & InsertSQL + "', "
nSql += "'" & Now() & "', "
nSql += CStr(userName) + ") "
cmd = New SqlCommand(nSql, conn)
End Function
所以现在如果我检查我的 nSQL,它看起来像......
Insert into tblSQLLOG (insert sql, date,user) values ('insert Insert into tableA (Value1, Value2, Value3) Values ('Mark1', 'City2', 'State3')','11/30/2016 8:46:41 AM', 'Bobby')
在这个插入语句中,我在 Value1 附近遇到了一个错误 - 我不知道我做错了什么。在我看来一切都很好。
【问题讨论】:
-
你应该使用一个参数
-
始终使用 SQL 参数。日志可以使用
cmd.CommandText -
您是否尝试在
tableA和tblSQLLOG两个表上插入? -
请记住,SO 帖子适用于各个年龄段。连接 SQL 是错误的,而不仅仅是一种不同的方式(并且会导致奇怪的事情,例如您的 Inserting apostrophe strings into sql server 问题)您所拥有的任何特殊限制都不会使以这种方式执行 SQL 成为一个好主意. DV 可能是为了表明——这个问题对其他人没有用处。不知道为什么,只是猜测。
-
不是我的问题。我跟风 这不是一个好兆头。根据您的代码示例,您自己创建查询、命令(不是一些全局帮助程序类)。因此,您很有可能编写带有参数的正确 sql 插入代码,
using关键字用于连接和命令。为什么不。添加/更改一些代码后,它会变成你的,即使你只更改了一行 - 整个文件也会变成你的
标签: sql sql-server vb.net