我需要插入一个新行,其中包括来自VB.net的已知变量和来自另一个表的数据 - 我在ASP.NET VB和SAL服务器2008中工作。
这就是我所拥有的:(编辑为更具可读性)
sql = "INSERT INTO [TABLE]([column1],[column2],[column3])
values('" + variable1 + "','" + variable2 + "','(SELECT [SOMETHING] FROM [TABLE2] WHERE [RowID] = " + Variable3 + ")')"
该语句执行并正常工作,但我想用SELECT语句填充的列是空的。
我认为它是一种语法,但我无法弄明白......
答案 0 :(得分:2)
您的问题可能是您的SELECT语句不应该有单引号。
values('" + variable1 + "','" + variable2 + "','(SELECT [SOMETHING] FROM [TABLE2] WHERE [RowID] = " + Variable3 + ")')"
应该阅读
values('" + variable1 + "','" + variable2 + "',(SELECT [SOMETHING] FROM [TABLE2] WHERE [RowID] = " + Variable3 + "))"
你应该考虑使用String.Format,它使它更具可读性:
http://www.dotnetperls.com/string-format-vbnet
Dim var1 as String = "Bar"
Dim var2 as String = "Foo"
Dim Var3 as Integer = 1
Dim subquery as String = String.Format("(SELECT [SOMETHING] FROM [TABLE2] WHERE [RowID] = {0} )", var3)
Dim sql As String = String.Format("INSERT INTO [TABLE]([column1],[column2],[column3]) values('{0}', '{1}', {2})", var1, var2, subquery)