2013-03-21 70 views
0
Dim sqlsyntax As String 
     Dim result 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 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 = Convert.ToInt32(txtEmpID.Text.Trim) 
      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 
      adapter.InsertCommand.Parameters(18).Value = DataGrid1(i, 18).GetType 

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

先生,我修改了代碼,我下面的SQL DATAS切換到vb.net 2003年,當一個windows.forms.datagrid的成員,不是從2008年

但返回的錯誤這裏

--- - > adapter.InsertCommand =新的SqlCommand(sqlsyntax,sqlconn)

ERROR: 類型 'System.NullReferenceException' 的未處理的異常發生在EOEHR.exe

附加信息:未將對象引用設置爲對象的實例。

+0

你在代碼中看到了什麼問題? – Tim 2013-03-21 06:32:58

+0

它在這些代碼underlign,當我指向它的光標它說somethign像行不是system.windows.forms.datagrid的成員,我認爲這個代碼是從更高的.net框架,如vb.net 2008 – ivandinglasan 2013-03-21 06:35:04

+0

DataGrid被替換在2.0中使用DataGridView - 爲了向後兼容DataGrid。 DataGrid中沒有'Rows'屬性,我可以在MSDN上看到。你確定這個代碼在2008年工作? – Tim 2013-03-21 06:36:40

回答

0

就我所知,DataGrid通過索引MyDataGrid(RowIndex, ColumnIndex)訪問單元格,就像數組一樣。這允許您獲取或設置指定單元格的值作爲對象,然後您可能會或可能不必將其轉換爲適當的類型。

.Row(Index)不適用於此控件,.Column(Index)也不起作用,因爲似乎沒有爲這些對象中的任何一個公開集合。

你可以試着改變你的代碼如下:

For i As Integer = 0 To 'Get the table from the data source here and loop through that instead of just looping through the datagrid. 
    adapter.InsertCommand.Parameters(0).Value = Convert.ToInt32(txtEmpID.Text.Trim) 
    adapter.InsertCommand.Parameters(1).Value = grdFamily(i, 0).ToString() 
    adapter.InsertCommand.Parameters(2).Value = grdFamily(i, 1).ToString() 
    adapter.InsertCommand.Parameters(3).Value = grdFamily(i, 2).ToString() 
    adapter.InsertCommand.Parameters(4).Value = grdFamily(i, 3).ToString() 

    result = adapter.InsertCommand.ExecuteNonQuery() 
    adapter.InsertCommand.Parameters.Clear() 

注意,我不知道你的數據類型是,所以我不能投來此示例中適當的類型是什麼。

UPDATE:

剛剛意識到你的代碼是在C#中,而我的回答是在VB.Net我更新,我認爲是正確的C#語法。

UPDATE2:

不知道您是否使用C#或VB.NET你似乎有兩者的混合,所以更新的答案VB.Net再次以反映你的問題的標籤。

更新3:

OK,做一些研究什麼你正在嘗試做的後似乎很複雜,通過數據網格的事情。你應該真的得到VS2012 Express作爲@Dai在你的問題的評論中建議。在任何情況下,如果你在.NET 1.1中設置ti,你應該確實掌握用於填充數據網格的DataTable,然後循環,因爲它更簡單。 你可以在互聯網上找到許多來源,告訴你如何做到這一點。

我真的不能爲您提供任何幫助。說實話,我認爲這是一個很好的答案,除非你在這裏有一些遺留的代碼要手動或者仍然記得.Net 1.1,並且願意爲你重寫你的代碼。

+0

好的,我認爲這應該是你現在想要的代碼。 – 2013-03-21 07:12:27

+0

仍然遇到錯誤這裏 對於我作爲整數= 0〜DataGrid1.Rows.Count - 1 在「datagrid1.rows注underligned:不是的system.windows.forms.datagrid – ivandinglasan 2013-03-21 07:30:35

+0

的成員現在就來試試。由於沒有'.Rows'屬性,我認爲你必須使用VisibleRowCount(也許...) – 2013-03-21 07:35:26