- - PR -
データが更新しない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-25 18:13
環境はVisual Studio 2005です。
ボタンを押すとDataGridViewの列を 編集した内容でデ−タを更新する、 というものを作りたいのですが。以下作成したコードです。 SqlConnectionでデータベースに接続、 DataAdapterを作成、(SELECT文でDataGridViewに表示)↓ Dim da As SqlDataAdapter da = New SqlDataAdapter("SELECT * FROM 顧客マスタ", cn) 更新用のコマンドを作成↓ da.UpdateCommand = New SqlCommand da.UpdateCommand.CommandText = "UPDATE 〜省略 " da.UpdateCommand.Connection = cn DataSetでデータを取得、 Dim ds As New DataSet da.Fill(ds, "顧客マスタ") Updateメソッドでデータベースを更新↓ da.Update(ds, "顧客マスタ") MessageBox.Show("更新しました") ほぼこの通り記述しました。 実行すると、列の内容を編集しボタンを押すと、 メッセージボックスで "更新しました" と表示されるのですが、 再び実行すると更新されていません。 分かりにくいかも知れませんが、よろしくお願いします。。。 | ||||
|
投稿日時: 2006-07-25 18:32
http://www.ailight.jp/blog/unaap/archive/2005/12/07/10249.aspx
更新されていないと言えばこれ。どうかな? _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-07-25 18:54
囚人さん、ありがとうございます。
ただ私の場合「データソースの追加」は使わずやってくれ、と上司に言われたので 「データソースの追加」は使っていません。 念のためソリューションのファイルを全て表示し、 プロパティの「出力ディレクトリにコピー」欄を全て見たところ コピーしない、になっていました。 それともコピーするを選んだほうがいいのでしょうか? | ||||
|
投稿日時: 2006-07-25 18:59
私もそうじゃないかと思って書きかけたのですが、SqlConnection と書い てあるので Access じゃないのかなあということで止めました。 実は Access に対して SqlConnection を使っているとか?(使えましたっけ?) とりあえず。 da.UpdateCommand.CommandText の内容を直接実行してみて、 更新されるかどうか調べてみてください。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||
|
投稿日時: 2006-07-25 19:24
>更新用のコマンドを作成↓
>Updateメソッドでデータベースを更新↓ ある意味一番大事なところが抜けていると思う。 こういうのって実は回答者側からすると疑わざるをえなかったりする。 と某有名なメーリングリストを利用する時のこころがまえでゆってた。 ってことで更新部分の個々のテストをする必要がある。 というかここまでやっていて初めて質問してもいいよって某有名な(ry | ||||
|
投稿日時: 2006-07-25 22:34
で、データの更新は、どのタイミングでやってるの? Update 文を、osql で直接流した場合、データは更新されるの? 追加: 「データの更新は」=「データベースに反映させるデータの更新は」 つまり、「編集」ボタンをクリックして、「確定」したデータは、どこで DataSet の中に反映されるのかな? [ メッセージ編集済み 編集者: Jitta 編集日時 2006-07-25 22:36 ] | ||||
|
投稿日時: 2006-07-27 17:22
ぽぴ王子さん、ぶさいくろうさん、Jittaさん
回答ありがとうございます。 Dim ds As New DataSet da.Fill(ds, "顧客マスタ") 上記のあとに次のコードを作成すると、うまくいきました。 Dim row As DataRow = ds.Tables("顧客マスタ").Rows(0) row("顧客名") = "" 色々ヒントになりましたので助かりました。 ありがとうございました。 |
1