- - PR -
DataTable に行を追加したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-07-25 09:35
テキストボックスに数字(西暦)を入力して、追加ボタン(登録)で入力した値をOracleのデータベースに送りたいのですが、DataSetで表には追加されるのですが、データベースに値が送られず、再度登録しても反映されません。なにかが足りないとは思っているのですが、なかなか気づくことができませんでした。
登録の仕方で、何か良い方法はないでしょうか? 使用環境:ASP.NET、Oracle10g、VisualStudio.NET2003 本文 '登録ボタンが押されたとき Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 'MS_NENDO_Tはテーブル名 NENDOはテーブルの中身 Dim newMS_NENDO_TRow As DataRow = DataSet31.Tables("MS_NENDO_T").NewRow() '入力した値の代入 newMS_NENDO_TRow("NENDO") = CheckBox1.Text 'DataSetで行を追加 DataSet31.Tables("MS_NENDO_T").Rows.Add(newMS_NENDO_TRow) Dim changedRecords As DataSet = DataSet31.GetChanges() DataBind() End Sub 動作例) チェックボックスに2000と入れ、登録ボタンを押すとデータセットに値が代入され、データテーブルに2000のテーブルが1行追加されますが、SQLで中を見てみると値が代入されずに更新されません。 [ メッセージ編集済み 編集者: Cheese 編集日時 2006-07-25 10:10 ] |
|
投稿日時: 2006-07-25 15:43
問題が解決したので報告します。
先ほどのソースにコマンドの自動作成(INSERT文)、データベースの更新を追加したところデータベースに登録できるようになりました。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'MS_NENDO_Tはテーブル名 NENDOはテーブルの中身 Dim newMS_NENDO_TRow As DataRow = DataSet11.Tables("MS_NENDO_T").NewRow() '入力した値の代入 newMS_NENDO_TRow("NENDO") = CheckBox1.Text 'DataSetで行を追加 DataSet11.Tables("MS_NENDO_T").Rows.Add(newMS_NENDO_TRow) Dim OraclCon As New OracleConnection Dim ds As New DataSet 'コマンドを自動作成(INSERT文) Dim OCB As New OracleCommandBuilder(OracleDataAdapter1) 'データベースの更新 OracleDataAdapter1.Update(DataSet11, "MS_NENDO_T") DataBind() End Sub 無事、解決しました。ありがとうございました。 |
1