人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Visual Basic .Net によりsqlサーバーを更新しようとしています。
select文で取得した値で内容を更新したいのですが、UPDATE文でどうしてもエラーに
なります。

Visual Basic .NetでSELECTの結果を破棄する前に、UPDATE文を実行することは可能
なのでしょうか?
ご教授下さい。

'データベース接続
cnn.Open()

'■SELECT
Dim cmnd As System.Data.SqlClient.SqlCommand =
cnn.CreateCommand()
cmnd.CommandText = "select * from information_customer where ic_output_stat = 0 "

'データアダプターにコマンドを設定
dataAda.SelectCommand = cmnd

' 指定した SQL コマンドを実行して SqlDataReader を構築する
Dim hReader As System.Data.SqlClient.SqlDataReader =
cmnd.ExecuteReader()

' cmnd を破棄する (正しくは オブジェクトの破棄を保証する を参照)
cmnd.Dispose()

Dim stPrompt As String = String.Empty

'■update
' hConnection から SqlCommand のインスタンスを生成する
Dim cmnd_1 As System.Data.SqlClient.SqlCommand =
cnn.CreateCommand()
cmnd_1.CommandText = "update information_customer set ic_output_stat ='" & hReader("mh_Name").ToString() & "'"

Dim hReader_2 As Integer = cmnd_1.ExecuteNonQuery()


●質問者: Sugipon
●カテゴリ:ウェブ制作
✍キーワード: .NET as CNN EMPTY open
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Allashe
●27ポイント

information_customerテーブルのic_output_stat列のデータ型は何でしょうか。

上のSelectでは整数型(Integer等)、下のUpdateでは文字列型で更新しているようですが・・・

◎質問者からの返答

回答ありがとうございます。

例題について間違いがありました、すみません。

Update文で0をベタ書きしてもエラーになってしまいます。

cmnd_1.CommandText = "update information_customer set ic_output_stat =0"

select文とupdate文の間に

hReader.Close()

を入れるとupdate文が通るようになるのですが、

実際はSELECTの内容を保持したままUPDATE文を実行したいのです。


2 ● kibitaki
●27ポイント

単純に、SELECT文の結果を保持(逃が)しておきたいだけであれば

DataTableにセットしておけば良いと思います。

(参考URLの質問のようなことを狙ってらっしゃるのであれば回答になると思いますが、

「そんな簡単なことじゃないよ」という場合には無視しちゃって下さい)


http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19520&fo...


3 ● vector
●26ポイント

connection1つにreader1つという概念ですから、コネクションを2つ用意すれば大丈夫です。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ