我的代码是:
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'值后自动连接字符串。
感谢。
答案 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,那么你还需要转义反斜杠。