尝试使用DataAdapter

时间:2017-06-28 16:11:49

标签: vb.net

我在这里再次请求你的帮助,我正在更新我的Windows应用程序,当我写我使用SQL 2005和VS.Net 2005但现在我使用VS.Net 2008和SQL 2008,我的问题是,当我想执行DataSet的更新时,我正在使用DataAdapter和SqlCommandBuilder ...我正在寻找解释为什么我收到此错误:

" NellReferenceExeption未处理"它假设我必须使用" new"但是哪里???在我的VS.Net 2005中没有这个问题,但是现在在我的VS.Net 2008中我得到了这个不可思议的错误....让我来形容你我的申请: 当表单加载时,它从我的DataBase填充DataGridView,这没有问题,但是当我做"点击"在我的按钮上使用我的DataGridView上的更改来更新我的数据库我遗憾地发现了错误,在我的代码中高于事件"点击"

Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
    If ConsejeraSet.HasChanges Then
        Dim filas As Integer, i As Integer
        filas = ConsejeraSet.Tables("Consejera").Rows.Count ----**This line shoot the error**------
        For i = 0 To filas - 1
            If ConsejeraSet.Tables("ConsejeraSet").Rows(i).RowState = DataRowState.Added Or ConsejeraSet.Tables("Consejeras").Rows(i).RowState = DataRowState.Modified Then
                If IsDBNull(ConsejeraSet.Tables("Consejeras").Rows(i).Item("Codigo_Consejera")) Or IsDBNull(ConsejeraSet.Tables("Consejeras").Rows(i).Item("Nombre")) Or IsDBNull(ConsejeraSet.Tables("Consejeras").Rows(i).Item("Apellidos")) Or IsDBNull(ConsejeraSet.Tables("Consejeras").Rows(i).Item("Equipo")) Then
                    MessageBox.Show("Por favor llenar los 4 campos que son necesarios", "IMPORTANTE")
                    Exit Sub
                End If
            End If
        Next
        Try
            Form2.conexionLocal = New SqlConnection(Form2.miCadena)
            Form2.conexionLocal.Open()
            Me.consejerAdapter.Update(ConsejeraSet, "Consejeras")
            MessageBox.Show("Tabla Consejeras actualizada con éxito")
        Catch ex As DuplicateNameException
            MessageBox.Show("No se puede Actualizar pues esta duplicado un codigo")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        Form2.conexionLocal.Close()
    Else
        MessageBox.Show("No han habido cambios")
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

对不起,我慢慢阅读我的代码行,发现我的错误是这样的:

filas = ConsejeraSet.Tables("Consejera").Rows.Count*****

在这一行我正在寻找一个名为“Consejera”的表,但在sql我的表名为“Consejeras”,所以如果我解决这个其他行射击我同样的错误并且是相同的,我写了垃圾代码行.. ..

If ConsejeraSet.Tables("ConsejeraSet").Rows(i).RowState = DataRowState.Added Or......

在这一行中,我正在调用同一个表“Consejeras”,我错误地写了“ConsejeraSet”我的DataSet的名字.....我很抱歉,我感谢你们所有人。

相关问题