如何使用变量数组创建 INSERT QUERY 字符串
How to make an INSERT QUERY String using an array of variables
我的代码是:
For index = 0 To dupColIndx - 1
expression(index) = dgvINSRT.Rows.Item(i).Cells.Item(index).Value.ToString
Next
Dim strInsrt As String = "INSERT INTO " & _
dbTbl & _
colStr & _
Strings.Replace(expression(0), "'", "''", 1, -1, CompareMethod.Binary) & "','" & _
Strings.Replace(expression(1), "'", "''", 1, -1, CompareMethod.Binary) & "','" & _
Strings.Replace(expression(2), "'", "''", 1, -1, CompareMethod.Binary) & "')"
在上面的代码中,不是手动输入表达式 (0)、表达式 (1) 等。我希望在为表达式 (n) 输入 'n' 的值后自动连接字符串。
谢谢。
If expression.Count >= 1
Dim strInsrt As String = "INSERT INTO " & dbTbl & colStr
For i= 0 To expression.Count - 2
strInsrt &= "'" & Strings.Replace(expression(i), "'", "''", 1, -1, CompareMethod.Binary) & "',"
Next i
strInsrt &= "'" & Strings.Replace(expression(expression.Count - 1), "'", "''", 1, -1, CompareMethod.Binary) & "')"
End If
您可以使用 String.Join
:
For index = 0 To dupColIndx - 1
expression(index) = dgvINSRT.Rows.Item(i).Cells.Item(index).Value.ToString.Replace("'", "''")
Next
Dim strInsrt As String = "INSERT INTO " & _
dbTbl & _
colStr & _
String.Join("','", expression) & "')"
注意:如果您自己对值进行转义,则对您正在使用的数据库使用正确的替换项至关重要,否则查询对 SQL 注入攻击是开放的。此处使用的方法适用于 SQL Server 和 Access,但可能不适用于其他数据库。它 不 适合 MySQL 例如,那么你还需要转义反斜杠。
我的代码是:
For index = 0 To dupColIndx - 1
expression(index) = dgvINSRT.Rows.Item(i).Cells.Item(index).Value.ToString
Next
Dim strInsrt As String = "INSERT INTO " & _
dbTbl & _
colStr & _
Strings.Replace(expression(0), "'", "''", 1, -1, CompareMethod.Binary) & "','" & _
Strings.Replace(expression(1), "'", "''", 1, -1, CompareMethod.Binary) & "','" & _
Strings.Replace(expression(2), "'", "''", 1, -1, CompareMethod.Binary) & "')"
在上面的代码中,不是手动输入表达式 (0)、表达式 (1) 等。我希望在为表达式 (n) 输入 'n' 的值后自动连接字符串。
谢谢。
If expression.Count >= 1
Dim strInsrt As String = "INSERT INTO " & dbTbl & colStr
For i= 0 To expression.Count - 2
strInsrt &= "'" & Strings.Replace(expression(i), "'", "''", 1, -1, CompareMethod.Binary) & "',"
Next i
strInsrt &= "'" & Strings.Replace(expression(expression.Count - 1), "'", "''", 1, -1, CompareMethod.Binary) & "')"
End If
您可以使用 String.Join
:
For index = 0 To dupColIndx - 1
expression(index) = dgvINSRT.Rows.Item(i).Cells.Item(index).Value.ToString.Replace("'", "''")
Next
Dim strInsrt As String = "INSERT INTO " & _
dbTbl & _
colStr & _
String.Join("','", expression) & "')"
注意:如果您自己对值进行转义,则对您正在使用的数据库使用正确的替换项至关重要,否则查询对 SQL 注入攻击是开放的。此处使用的方法适用于 SQL Server 和 Access,但可能不适用于其他数据库。它 不 适合 MySQL 例如,那么你还需要转义反斜杠。