INSERT包含已知变量和SELECT'ed值(VB)的行

时间:2013-12-18 15:47:36

标签: asp.net sql-server vb.net tsql

我需要插入一个新行,其中包括来自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语句填充的列是空的。

我认为它是一种语法,但我无法弄明白......

1 个答案:

答案 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)