2011-11-07 78 views
0

我有一個非常簡單的表訪問。數據使用OLEDB適配器從VB.NET存儲。我有第二種形式,它只有一個DataGridView,它是使用VS2010從Data Sources窗口中拖放的。當試圖查看DataGridView時發生VB.NET異常

第一次嘗試查看窗口時,沒有顯示數據,第二次發生異常並且程序關閉。

這裏是自動生成的代碼:

Public Class ViewSent 

Private Sub SentBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SentBindingNavigatorSaveItem.Click 
    Me.Validate() 
    Me.SentBindingSource.EndEdit() 
    Me.TableAdapterManager.UpdateAll(Me.DbDataSet) 
End Sub 

Private Sub ViewSent_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'DbDataSet.Sent' table. You can move, or remove it, as needed. 
    Me.SentTableAdapter.Fill(Me.DbDataSet.Sent) 


End Sub 

End Class 

我與被插入一個「文本」格式化列和數據所面臨問題的具體列是:

cmd2.Parameters.Add("Time", OleDbType.VarChar).Value = DateTime.Now.ToString().Trim() 

在即時窗口單擊Form.ShowDialog()按鈕後出現此消息: 類型'System.ArgumentException'的第一次機會異常發生在System.Data.dll中

另外,數據不會加載到datagridview中。

關閉窗口,然後單擊相同的按鈕(根本沒有更改數據)出現此錯誤: 輸入字符串的格式不正確。請勿存儲< 07/11/2011 00:55 :06>在時間欄中。預期的類型是Int32。

+0

數據存儲中該列的數據類型是什麼? – Jamie

+0

數據類型爲Text,並且以文本形式存儲: md2.Parameters.Add(「Time」,OleDbType.VarChar).Value = DateTime.Now.ToString()。Trim()。如果這是存儲數據的問題,那麼在插入時會發生這個問題,而這是顯示數據的問題。 – Chris

回答

0

我想Givelasdougmore是想說的是,你不應該使用像「時代」,「更新」,「刪除」爲COLUMNNAME詞在你的數據庫

嘗試改變列名「時代」喜歡的東西「Creationdatetime」或類似的東西。那麼一切都應該工作

+0

感謝您的幫助,我之前更改了列名,然後重新配置了數據源,但每次仍然得到列名Time,直到我終於重新啓動我的電腦並且工作正常。 – Chris

0

確保數據類型與數據庫中的數據類型匹配,就像數據集中的數據類型一樣。

+0

數據類型爲Text,並以文本形式存儲: md2.Parameters.Add(「Time」,OleDbType.VarChar).Value = DateTime.Now.ToString()。Trim()。 – Chris