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データに修正しました。

しかし、ここでエラーを返しました

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

エラー: タイプ 'System.NullReferenceException' の未処理の例外が EOEHR.exe で発生しました

追加情報: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

4

1 に答える 1

0

私の知る限り、 aは配列のようにDataGridindexing を介してセルにアクセスします。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()

データ型がわからないので、このサンプルでは適切な型にキャストできないことに注意してください。

アップデート:

私の答えはVB.Netでしたが、コードがC#であることに気づきました。正しいC#構文であると思われるものに更新しました。

更新 2:

C# と VB.NET のどちらを使用しているかわからない場合は、両方が混在しているように見えるため、質問タグを反映するために VB.Net への回答を再度更新してください。

更新 3:

OK、いくつかの調査を行った後、あなたがやろうとしていることは、データグリッドを介して行うのは非常に複雑に思えます. @Daiが質問へのコメントで提案したように、VS2012 Expressを実際に入手する必要があります。

いずれにせよ、.NET 1.1 で ti を実行することに設定されている場合はDataTable、データグリッドにデータを入力するために使用する を実際に取得し、代わりにそれをループする必要があります。インターネット上で、その方法を教えてくれる多くの情報源を見つけることができます。

これ以上のお手伝いはできません。正直なところ、ここにいる誰かが手元にレガシーコードを持っているか、まだ.Net 1.1を覚えていて、コードを書き直してくれる人でない限り、これはあなたが得るのと同じくらい良い答えだと思います.

于 2013-03-21T06:42:24.757 に答える