2015-07-28 38 views
0

我正在用sqlexpress數據庫開發一個簡單的家庭卡vb.net應用程序。我感到震驚,請幫助: 當用戶保存成員時,有兩個字段1.出生日期,2.洗禮日期。他可以跳過兩個。以便我使用以下語句:Datagrid不顯示新表格中的數據

If Not IsDate(DOBDatepik.Text) Then 
       sqlcmd.Parameters.Add("@DOB", SqlDbType.DateTime).Value = DBNull.Value 
      Else 
       sqlcmd.Parameters.Add("@DOB", SqlDbType.DateTime).Value = DOBDatepik.Value 
      End If 

它的工作原理。現在我使用Datagrid創建新窗體以查找族。這是用戶雙擊任何單元格時的一條語句,新窗體將顯示當前記錄。爲此我使用以下聲明:

我還沒有複製整個文本。這只是澄清

Private Sub familyGridView_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles familyGridView.CellDoubleClick 

     Dim int As Integer = Me.familyGridView.CurrentCell.RowIndex 
     FamilyDetails.DOBDatepik.Value = Me.familyGridView.Item(6, int).Value 
     FamilyDetails.baptismDatepik.Value = Me.familyGridView.Item(12, int).Value 
     FamilyDetails.Show() 
    End Sub 

它的工作原理,但那裏是空日期,它提供以下錯誤

Conversion from type 'DBNull' to type 'Date' is not valid. 

所以,請幫我解決這個問題。空日期不是從DataGrid傳遞到新的表單,並且在表中作爲二進制數據的圖像在發送到新表單時也發生錯誤。

+0

不要在一個帖子中提出2個問題。如果某人只有時間回答一個問題,你就會鬆懈。您需要測試DBNull給定日期可以爲空。你也應該使用事件參數,而不是'CurrentRow/CurrentCell' – Plutonix

+0

對不起,我......但是DBNULL不清楚以及如何使用事件參數..請解釋....如果給出的代碼會更好 –

回答

0

您的問題似乎是當您將值傳遞給新的它看起來像。

您只需檢查值是否爲空。

例如:

If Not Me.familyGridView.Item(6, int).Value is DBNull.Value Then 
    FamilyDetails.DOBDatepik.Value = Me.familyGridView.Item(6, int).Value 
Else 
    FamilyDetails.DOBDatepik.Value = nothing 
End If 
If Not Me.familyGridView.Item(12, int).Value is DBNull.Value Then 
    FamilyDetails.baptismDatepik.Value = Me.familyGridView.Item(12, int).Value 
Else 
    FamilyDetails.baptismDatepik.Value = nothing 
End If 

希望這有助於!

+0

謝謝親愛的..它的作品 –