我正在使用String Builder创建一个SQL Update查询,如果最后有一个逗号,我需要删除它。
例如:
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语句后,我想从最后删除一个逗号。
有什么想法吗?
答案 0 :(得分:4)
最简单的方法是使用每个变量创建一个集合(抱歉,这里是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
,它可以轻松地连接一个可枚举的字符串,在每个字符串之间放置一个分隔符(但不在末尾)。
答案 1 :(得分:3)
只需减少StringBuilder的Length属性
query.Length -= 2
但是,请注意您的UPDATE查询。似乎缺少WHERE子句,TableName和SET指令之间需要一个空格 如果您没有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