2013-03-22 87 views
-1

當我完成後點擊保存按鈕這個錯誤返回輸入數據網格列 所有的數據:如何在我的代碼中實現IConvertible對象?

錯誤: 「」類型的未處理的異常出現在system.data.dll

附加信息:對象必須實現IConvertible。

Dim sqlsyntax As String 
    sqlsyntax = "INSERT INTO tblOfficeEquipmentProfile(OE_ID, OE_Category,OE_SubCategory, OE_Name, OE_User, OE_Brand, OE_Model, OE_Specs, OE_SerialNo, OE_PropertyNo, OE_Static_IP, OE_Vendor, OE_PurchaseDate, OE_WarrantyInclusiveYear, OE_WarrantyStatus, OE_Status, OE_Dept_Code,OE_Location_Code,OE_Remarks)" _ 
      & "VALUES(@OE_ID,@OE_Category,@OE_SubCategory,@OE_Name,@OE_User,@OE_Brand,@OE_Model,@OE_Specs,@OE_SerialNo,@OE_PropertyNo,@OE_Static_IP,@OE_Vendor,@OE_PurchaseDate,@OE_WarrantyInclusiveYear,@OE_WarrantyStatus,@OE_Status,@OE_Dept_Code,@OE_Location_Code,@OE_Remarks)" 

    Dim adapter As New SqlDataAdapter 
    adapter.InsertCommand = New SqlCommand(sqlsyntax, sqlconn) 

    adapter.InsertCommand.Parameters.Add("@OE_ID", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_Category", SqlDbType.Char) 
    adapter.InsertCommand.Parameters.Add("@OE_SubCategory", SqlDbType.Char) 
    adapter.InsertCommand.Parameters.Add("@OE_Name", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_User", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_Brand", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_Model", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_Specs", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_SerialNo", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_PropertyNo", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_Static_IP", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_Vendor", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_PurchaseDate", SqlDbType.SmallDateTime) 
    adapter.InsertCommand.Parameters.Add("@OE_WarrantyInclusiveYear", SqlDbType.Int) 
    adapter.InsertCommand.Parameters.Add("@OE_WarrantyStatus", SqlDbType.Char) 
    adapter.InsertCommand.Parameters.Add("@OE_Status", SqlDbType.VarChar) 
    adapter.InsertCommand.Parameters.Add("@OE_Dept_Code", SqlDbType.Char) 
    adapter.InsertCommand.Parameters.Add("@OE_Location_Code", SqlDbType.Char) 
    adapter.InsertCommand.Parameters.Add("@OE_Remarks", SqlDbType.VarChar) 


    For i As Integer = 0 To DataGrid1.VisibleRowCount - 1 

     adapter.InsertCommand.Parameters(0).Value = DataGrid1(i, 0).GetType 
     adapter.InsertCommand.Parameters(1).Value = DataGrid1(i, 1).GetType 
     adapter.InsertCommand.Parameters(2).Value = DataGrid1(i, 2).GetType 
     adapter.InsertCommand.Parameters(3).Value = DataGrid1(i, 3).GetType 
     adapter.InsertCommand.Parameters(4).Value = DataGrid1(i, 4).GetType 
     adapter.InsertCommand.Parameters(5).Value = DataGrid1(i, 5).GetType 
     adapter.InsertCommand.Parameters(6).Value = DataGrid1(i, 6).GetType 
     adapter.InsertCommand.Parameters(7).Value = DataGrid1(i, 7).GetType 
     adapter.InsertCommand.Parameters(8).Value = DataGrid1(i, 8).GetType 
     adapter.InsertCommand.Parameters(9).Value = DataGrid1(i, 9).GetType 
     adapter.InsertCommand.Parameters(10).Value = DataGrid1(i, 10).GetType 
     adapter.InsertCommand.Parameters(11).Value = DataGrid1(i, 11).GetType 
     adapter.InsertCommand.Parameters(12).Value = DataGrid1(i, 12).GetType 
     adapter.InsertCommand.Parameters(13).Value = DataGrid1(i, 13).GetType 
     adapter.InsertCommand.Parameters(14).Value = DataGrid1(i, 14).GetType 
     adapter.InsertCommand.Parameters(15).Value = DataGrid1(i, 15).GetType 
     adapter.InsertCommand.Parameters(16).Value = DataGrid1(i, 16).GetType 
     adapter.InsertCommand.Parameters(17).Value = DataGrid1(i, 17).GetType 
     sqlconn.Open() 

     adapter.InsertCommand.ExecuteNonQuery() 
     MsgBox("success fully added") 
     adapter.InsertCommand.Parameters.Clear() 

    Next 
    sqlconn.Close() 

如何在對象中實現IConvertible?

+0

看看這裏請http://msdn.microsoft.com/en-us/library/system.iconvertible.aspx – 2013-03-22 01:47:57

+1

你認爲你必須發佈_all_的代碼才能得到答案?哪一行產生異常?事實上,你顯然不知道你在做什麼。您不希望將參數設置爲某種類型。你想達到什麼目的? – 2013-03-22 01:59:57

+0

@JohnSaunders是對的。自從昨天開始尋求關於最基本的東西的幫助之後,您會繼續發佈這段代碼。但如果至少你會接受爲你提供的一些答案,那就沒問題了。 – 2013-03-22 02:15:26

回答

1

說實話,我真的不明白,爲什麼你一直分配類型參數的值...

當然,你想你想是鑄造你的細胞,以正確類型的內容,例如在第一線做什麼:

adapter.InsertCommand.Parameters(0).Value = CStr(DataGrid1(i, 0)) 

或可能

adapter.InsertCommand.Parameters(0).Value = DataGrid1(i, 0).ToString() 

對於Char類型的任何參數。 對於DateTimeInt輸入參數,您想要使用CDate()CInt,但我不認爲您想要使用GetType(),因爲它只是獲取單元格中的值的類型而不是實際值。另外,雖然你似乎有19個參數給你的命令,但你只是增加了18個值,我不知道這是否是所需的行爲,但它似乎很奇怪。

0

這似乎很奇怪,你要插入一個Type值到每個參數:

adapter.InsertCommand.Parameters(0).Value = DataGrid1(i, 0).GetType 

的誤差也很可能是由於試圖將Type轉換爲各種數據類型的參數打算舉行。

也許你打算做,而不是執行以下操作:

adapter.InsertCommand.Parameters(0).Value = DataGrid1(i, 0).Value 
+0

我會嘗試你的代碼先生。謝謝 – ivandinglasan 2013-03-22 01:52:21

+0

@lc,對不起,我錯誤地編輯了你的答案,認爲它是我的... – 2013-03-22 01:57:26

相關問題