删除 StringBuilder SQL 查询中的最后一个逗号
Remove last comma in StringBuilder SQL Query
我正在使用 String Builder 创建 SQL 更新查询,如果末尾有逗号,我需要将其删除。
例如:
Dim query As New StringBuilder
query.AppendLine("Update Vendor")
If Not String.IsNullOrEmpty(vendInfo.Name) Then
query.AppendLine("Set VendorName= @VendorName, ")
End If
If Not String.IsNullOrEmpty(vendInfo.VendorType) Then
query.AppendLine("VendorType= @VendorType, ")
End If
最后一项的查询错误,因为总是有一个逗号。完成所有 If 语句后,我想从末尾删除一个逗号。
有什么想法吗?
只需减少 StringBuilder
的长度 属性
query.Length -= 2
但是,请注意您的 UPDATE 查询。 WHERE 子句似乎缺失,TableName 和 SET 指令之间需要一个 space。
如果您没有 Vendinfo.Name,也会出现另一个问题。您排除了插入 SET 的代码,但这对于更新的第一个字段是必需的
Dim query As New StringBuilder
query.AppendLine("Update Vendor SET ")
If Not String.IsNullOrEmpty(vendInfo.Name) Then
query.AppendLine("VendorName= @VendorName, ")
End If
If Not String.IsNullOrEmpty(vendInfo.VendorType) Then
query.AppendLine("VendorType= @VendorType, ")
End If
If query.Length > 18 Then
' 18 chars are fixed in UPDATE Vendor SET'
query.Length -= 2
' add the WHERE clause'
......
End If
最简单的方法是用每个变量创建一个集合(抱歉,这里是 C#)
var list = new List<string>();
// add your vars
if(!string.IsNullOrEmpty(vendInfo.Name))
list.Add("Set VendorName= @VendorName");
// and join them
var vars = string.Join(", ", list);
秘诀是 String.Join
,它可以轻松连接可枚举的字符串,在每个字符串之间(但不是末尾)放置一个分隔符。
我正在使用 String Builder 创建 SQL 更新查询,如果末尾有逗号,我需要将其删除。
例如:
Dim query As New StringBuilder
query.AppendLine("Update Vendor")
If Not String.IsNullOrEmpty(vendInfo.Name) Then
query.AppendLine("Set VendorName= @VendorName, ")
End If
If Not String.IsNullOrEmpty(vendInfo.VendorType) Then
query.AppendLine("VendorType= @VendorType, ")
End If
最后一项的查询错误,因为总是有一个逗号。完成所有 If 语句后,我想从末尾删除一个逗号。
有什么想法吗?
只需减少 StringBuilder
的长度 属性query.Length -= 2
但是,请注意您的 UPDATE 查询。 WHERE 子句似乎缺失,TableName 和 SET 指令之间需要一个 space。
如果您没有 Vendinfo.Name,也会出现另一个问题。您排除了插入 SET 的代码,但这对于更新的第一个字段是必需的
Dim query As New StringBuilder
query.AppendLine("Update Vendor SET ")
If Not String.IsNullOrEmpty(vendInfo.Name) Then
query.AppendLine("VendorName= @VendorName, ")
End If
If Not String.IsNullOrEmpty(vendInfo.VendorType) Then
query.AppendLine("VendorType= @VendorType, ")
End If
If query.Length > 18 Then
' 18 chars are fixed in UPDATE Vendor SET'
query.Length -= 2
' add the WHERE clause'
......
End If
最简单的方法是用每个变量创建一个集合(抱歉,这里是 C#)
var list = new List<string>();
// add your vars
if(!string.IsNullOrEmpty(vendInfo.Name))
list.Add("Set VendorName= @VendorName");
// and join them
var vars = string.Join(", ", list);
秘诀是 String.Join
,它可以轻松连接可枚举的字符串,在每个字符串之间(但不是末尾)放置一个分隔符。