- PR -

DataSetで変更したのに変更されないOracleのtable

1
投稿者投稿内容
重軽傷
会議室デビュー日: 2004/05/19
投稿数: 2
投稿日時: 2004-05-19 15:42
教えて頂きたくて登録しました。
↓な感じでoracleに接続しています。

string strSQL = "";
strSQL = strSQL + "SELECT PARTS_CODE AS 部品 FROM ZAIKO";
OracleConnection conn = new OracleConnection("data source=***;user id=***;password=***");
conn.Open();
OracleDataAdapter adapter = new OracleDataAdapter(strSQL,conn);
conn.Close();
DataSet ds = new DataSet();
adapter.Fill(ds,"ZAIKO");
DataTable dt = ds.Tables[0];


変更する時は、↓な感じです。


DataSet ds = (DataSet)Session["ds"];
DataTable dt = ds.Tables[0];
DataRow row = dt.Rows[index];
row.BeginEdit();
try
{
 row[0] = txtBcode.Text;
 row.EndEdit();
}
catch
{
 row.CancelEdit();
 return;
}

WebGridを使って再度表示させているのですが(コード:↓)

DataSet ds = (DataSet)Session["ds"];
DataTable dt = ds.Tables[0];
wg.DataSource = dt;
wg.DataBind();

DataSetの変更は出来ています…たぶん。変更されて表示されているので。
でもoracleのテーブルは変わっていないんです。
SQLPlusでUPDATE出来るし、Accessにリンク貼っても変わるし…。
私の認識(知識?)では
「DataSetの変更はテーブルを直接変更してるも同じなんじゃ…??」
って思ってます。。
でも間違いもわからなくてさっきからずっと過去ログでウロウロ…。

初めて.NETを使って開発してるので初歩な質問かもしれませんが
どうか宜しくお願いします。

「oracleのテーブルを変更したいんです。。」
アティ
ベテラン
会議室デビュー日: 2003/08/14
投稿数: 91
お住まい・勤務地: KANAGAWA
投稿日時: 2004-05-19 16:12
データセットは、DB(この場合Oracle)から必要な情報だけ取得してきて、それを保持した小さなデータベースと考えるといいです。
データセットを変更しても、データセットの更新内容をDBを更新する処理を入れないと、DBは更新されません。
更新をする方法は、DataAdapterを使う方法等あります。
やり方は、@ITのInsider.Netフォーラムの記事を参照してください。

引用:

重軽傷さんの書き込み (2004-05-19 15:42) より:
(省略)
私の認識(知識?)では
「DataSetの変更はテーブルを直接変更してるも同じなんじゃ…??」
って思ってます。。
(省略)

重軽傷
会議室デビュー日: 2004/05/19
投稿数: 2
投稿日時: 2004-05-19 17:25
ご教授本当にありがとうございます。
何度も何度も更新して待っていました(TT)
ログを読んでて「基礎講座ってどこだろう」と思っていたので
とても感謝しています。

「3.楽観的なデータベース更新処理」をみて出来ました。


「本当にありがとうございました。」

[ メッセージ編集済み 編集者: 重軽傷 編集日時 2004-05-19 18:14 ]
アティ
ベテラン
会議室デビュー日: 2003/08/14
投稿数: 91
お住まい・勤務地: KANAGAWA
投稿日時: 2004-05-19 18:28
通常は、「SETキーワードがありません。」の左に書いてあるExceptionクラスをMSDNライブラリで参照します。
ですけど、今回はヒントを。
updateStrのSQL文字列を、メモ帳などに1行で書いてみてください。
1

スキルアップ/キャリアアップ(JOB@IT)