如何在vb.net中将空字符串转换为guid.empty
我有一个与数据源绑定的组合框,我正在向0索引插入一个空值,如下所示如何在vb.net中将空字符串转换为guid.empty,vb.net,combobox,Vb.net,Combobox,我有一个与数据源绑定的组合框,我正在向0索引插入一个空值,如下所示 Private Sub BuildCustomerList() Dim ID As String = CStr(Session("M3_CustomerID")) Dim fCustID As Guid = Guid.Parse(ID) Dim dt As DataTable = dbAccess.GetCustomerRecord(fCustID) 'Set
Private Sub BuildCustomerList()
Dim ID As String = CStr(Session("M3_CustomerID"))
Dim fCustID As Guid = Guid.Parse(ID)
Dim dt As DataTable = dbAccess.GetCustomerRecord(fCustID)
'Set initial user display settings
cmbSelectCustomer.DataValueField = dt.Columns(0).ToString()
cmbSelectCustomer.DataTextField = dt.Columns(1).ToString()
cmbSelectCustomer.DataSource = dt
cmbSelectCustomer.DataBind()
cmbSelectCustomer.Items.Insert(0, New ListItem(String.Empty, DBNull.Value.ToString()))
', (Guid.Empty).ToString()))
cmbSelectCustomer.SelectedIndex = 0
End Sub
有一个方法接受guid类型参数,如下所示
Private Sub PopulateManageMessageGridView(ByVal customerID As Guid?)
End Sub
PopulateManageMessageGridView(Guid.Parse(cmbSelectCustomer.SelectedValue))
在这里我必须传递一个Guid?类型值或Guid值如下所示
Private Sub PopulateManageMessageGridView(ByVal customerID As Guid?)
End Sub
PopulateManageMessageGridView(Guid.Parse(cmbSelectCustomer.SelectedValue))
但是当cmbselectCustomer.selectedValue为string.empty(“”)时,则会出现类似于“无法识别的Guid格式”的错误
那么如何将string.empty转换为guid呢?所以方法接受参数。任何帮助都将不胜感激。提前感谢请查看:
Dim customer = cmbSelectCustomer.SelectedValue
Dim guid As Guid
If String.IsNullOrEmpty(customer) Then
guid = Guid.Empty
Else
guid = Guid.Parse(customer)
End If
PopulateManageMessageGridView(guid)
您还可以使用Guid.TryParse
:
Dim customer = cmbSelectCustomer.SelectedValue
Dim guid As Guid
If Not Guid.TryParse(customer, guid) Then guid = Guid.Empty
PopulateManageMessageGridView(guid)
可能您只想在字符串不为空时调用该方法:
If Not String.IsNullOrEmpty(customer) Then
PopulateManageMessageGridView(Guid.Parse(customer))
End If
我总是喜欢写更少的代码
Dim cb As New ComboBox
Dim guid As Guid = If(cb.SelectedIndex > 0, guid.Parse(cb.SelectedValue), guid.NewGuid())
我们检查组合框的SelectedIndex
属性并确认它大于0,这也将处理未选择任何内容的情况(索引为-1)
虽然使用guid.NewGuid()
为记录分配新的guid是明智的,但您也可以使用guid.Empty
,它将返回00000000-0000-0000-00000000
在您的问题中,您声明索引0处有空字符串值,但为了完整性,我将说明您是否有多个具有空字符串值的记录。在这种情况下,检查三元语句中组合框的SelectedValue
,而不是SelectedIndex
:
Dim guid As Guid = If(cb.SelectedValue.Length > 0, guid.Parse(cb.SelectedValue), guid.NewGuid())
谢谢,我也用了同样的方法。