2013-02-05 83 views
0

我有一個數據庫,目前沒有任何內容,我試圖創建並保存第一條記錄,但最終得到一個錯誤,指出「位置0沒有行「。VB在位置0沒有行

我所做的不是讓用戶選擇發件人或收件人姓名的文本框,而是將他們取出並放入組合框中,並將其綁定到其他兩個數據庫中相應的字段(shippers.mdb和receivers.mdb)。

因此,在點擊「保存」按鈕時,我想從這些組合框中將選定項目(保存到字符串)保存到數據庫中我想要的每個列單元格中。但是,該系統並沒有讓我保存記錄。我一直在試圖弄清楚如何保存正在編輯或輸入的「當前」記錄的信息,因爲我已經決定使用(0),認爲這可能有效,但似乎並不正確。下面是代碼:

Private Sub Button16_Click_1(sender As System.Object, e As System.EventArgs) Handles Button16.Click 

     Me.OrdersDataSet.orders(0).orderstatus = ComboBox13.SelectedItem.ToString() 
     shipper1 = ComboBox8.SelectedItem.ToString() 
     Me.OrdersDataSet.orders(0).SHIPPER1 = shipper1 
     RECEIVER1 = ComboBox9.SelectedItem.ToString() 
     Me.OrdersDataSet.orders(0).RECEIVER1 = RECEIVER1 
     billtoacct = ComboBox7.SelectedItem.ToString() 
     Me.OrdersDataSet.orders(0).BILLTOACCT = billtoacct 
     driverassigned = ComboBox10.SelectedItem.ToString() 
     Me.OrdersDataSet.orders(0).DRIVERASSIGNED = driverassigned 
     truckassigned = ComboBox11.SelectedItem.ToString() 
     Me.OrdersDataSet.orders(0).TRUCKASSIGNED = truckassigned 
     trailerassigned = ComboBox12.SelectedItem.ToString() 
     Me.OrdersDataSet.orders(0).TRAILERASSIGNED = trailerassigned 

     Me.Validate() 
     Me.OrdersBindingSource.EndEdit() 
     Me.TableAdapterManager12.UpdateAll(Me.OrdersDataSet) 
    End Sub 

我應該怎麼使用,而不是因爲我似乎無法找到的東西,讓我保存(或替代)當前記錄的組合框的項目?我沒有檢查表適配器,該CRUD是在那裏,我經過,以確保它的設置來填充,更新等。

謝謝你看看。

+0

什麼是此代碼中的OrdersDataSet? – Kiran1016

+0

嗨Kiran,那是我想要保存的數據集。 – Shawn

+0

但你沒有數據集中的行,所以你不能參考那樣的數據集。 – Kiran1016

回答

0

給這個一杆....把所有這你的按鈕Click事件和根據需要進行更改...

Dim customerOrders As DataSet = New DataSet("CustomerOrders") 
Dim ordersTable As DataTable = customerOrders.Tables.Add("Orders") 

'ADD YOUR COLUMNS YOU NEED TO...' 
ordersTable.Columns.Add("OrderQuantity", Type.GetType("System.Int32")) 
ordersTable.Columns.Add("CompanyName", Type.GetType("System.String")) 

'AND WHATEVER ELSE YOU NEED TO ADD, CHANGE AS NEEDED' 

    ' Add YOUR ROWS to those columns for the datatable. 
ordersTable .Rows.Add(25, "Indocin") 
ordersTable .Rows.Add(50, "Enebrel") 
ordersTable .Rows.Add(10, "Hydralazine") 
ordersTable .Rows.Add(21, "Combivent") 
ordersTable .Rows.Add(100, "Dilantin") 

然後,你必須用表數據集和數據設置爲您表適配器管理器

謝謝!