2017-06-28 7 views
0

WITH DataSetを更新しようとするだけでなく私は私はSQL 2005およびVS.Net 2005を使用書いたとき、私は、私のWindowsアプリケーションのアップデートに取り組んでいますが、今私は、VSを使用しています、あなたの助けを求めて再びここにいますNet 2008とSQL 2008、私の問題は、DataAdapterとSqlCommandBuilderを使用してDataSetの更新を実行したいときです。なぜこのエラーが表示されるのか説明を探しています:のDataAdapter

"NellReferenceExeptionが未処理です"私は単語"新しい "を使用しなければならないと思うが、どこに???私の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 
+0

try/catchを取り除くと、IDEはNothingとは何かを表示します。明示的なフォーム参照を探さなければなりません。その間に[ask]を読んで[tour]を取ってください – Plutonix

+0

ありがとう私は私のエラーを見つけました私はゴミのいくつかのラインをroteだったかもしれません多分私はそれが終わったときに眠っていたが、よく私は尋ねる方法を読むだろうと、あなたの助けに感謝。 –

答えて

0

を「クリック」イベントに私のコードの上、問題ありませんが、私は「Consejera」と呼ばれるテーブルを探していますが、SQLで私のテーブルと呼ばれるこの行の

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

:私はゆっくり読んで、私のコード行と私のエラーは、このでした「Consejeras」私は同じテーブル「Consejeras」を呼び出すとしています。このラインで

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

....私は、この他のラインを解決するため、私に同じエラーを撃つと同じだった場合、私はゴミのコード行を書きましたように、私は誤って "ConsejeraSet"データセットの名前を書きました.....本当にすみません、皆さんありがとうございます。

関連する問題