如何使用变量数组创建INSERT QUERY字符串

时间:2015-03-31 17:42:06

标签: vb.net string insert-into

我的代码是:

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'值后自动连接字符串。

感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以使用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,那么你还需要转义反斜杠。