2014-09-01 84 views
-1

我有一个与数据源绑定的组合框,我将一个空值插入0索引,如下所示。如何将一个空字符串转换为vb.net中的guid.empty

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 

给出对于在这里,我必须通过一个GUID的方法?下面

PopulateManageMessageGridView(Guid.Parse(cmbSelectCustomer.SelectedValue)) 

为给定类型的值或GUID值,但是当cmbselectCustomer.selectedValue是的String.Empty(“”),则它给定的错误是这样的“未识别的GUID格式”。

那么如何将string.empty转换为guid?所以方法接受参数。任何帮助将不胜感激。在此先感谢

回答

1

只是检查:

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 
+0

谢谢,我也用了同样的方法。 – Python 2014-09-01 14:41:45

0

我一直是少代码的粉丝。

Dim cb As New ComboBox 
Dim guid As Guid = If(cb.SelectedIndex > 0, guid.Parse(cb.SelectedValue), guid.NewGuid()) 

我们检查ComboBox的SelectedIndex财产,并确认它是大于0,这也将处理没有什么选择的情况下(指数为-1)。

虽然智能分配一个新的GUID的记录与guid.NewGuid(),你也可以使用guid.Empty将返回00000000-0000-0000-0000-000000000000

在你的问题,你说你有空字符串值在索引0,但为了完整性,我会解决您是否有多个空字符串值的记录。在这种情况下,请检查SelectedValue而不是在三元声明ComboBox的SelectedIndex

Dim guid As Guid = If(cb.SelectedValue.Length > 0, guid.Parse(cb.SelectedValue), guid.NewGuid()) 
相关问题