- - PR -
TextBox の内容を反映
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-09-19 11:59
こんにちは。
件名についてお聞きします。 行いたいことは以下のとおりです。 1. DBから1レコード取得し、各項目をTextBoxに表示する。 2. TextBoxの内容に変更を加え、ボタン押下でDBの更新を行う。 上記 2. のとき、ブラウザ表示上は変更した内容が表示されていますが、コードでは変更前の値が使用されています。 変更した値を使用するにはどうしたらよいでしょうか? ご存知の方がいらっしゃいましたら、ご教授ください。 コード、環境は以下のとおりです。 1) コード 1. Imports System.Data.OleDb 2. 3. Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 4. Dim rs As OleDbDataReader 5. OleDbConnection1.Open() 6. rs = OleDbDataAdapter1.SelectCommand.ExecuteReader() 7. 8. rs.Read() 9. 10. TextBox1.Text = rs("Client") 11. TextBox2.Text = rs("ClientOffice") 12. TextBox3.Text = rs("Project") 13. 14. rs.Close() 15. OleDbConnection1.Close() 16. End Sub 17. 18. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 19. Dim DbCommand As OleDbCommand 20. Dim strSQL As String 21. 22. strSQL = "Update T_EIGYOU Set Client='" & TextBox1.Text & "',ClientOffice='" & TextBox2.Text & "',Project='" & TextBox3.Text & "' Where ID=1" 23. DbCommand = New OleDbCommand(strSQL, OleDbConnection1) 24. DbCommand.Connection.Open() 25. DbCommand.ExecuteNonQuery() 26. OleDbConnection1.Close() 27. End Sub 2) 環境 OS:Windows2000 Pro Microsoft .NET Framework 1.0 Microsoft Visual Basic .NET | ||||
|
投稿日時: 2003-09-19 12:22
こんにちは。
結果から言いますと、 5行目の前に If Not Page.IsPostBack Then 15行目の後に End If を追加してやればお望みどおりの結果になります。 ボタンをクリックした時にPostBackが発生しますので、 「Button1_Click」の前に「Page_Load」が走ります。 で、10〜12行目で前の値を取ってしまっていますよね? VSをお使いでしたら、 3行目にブレークポイントを付けてデバックしてみてください。 | ||||
|
投稿日時: 2003-09-19 12:36
Rikuroさん、こんにちは。
ここ↑にブレークポイントを設定して、デバッグ実行してみて下さい。 ボタンのクリック時にも、このイベントが発生しているのが判ると思います。 ポストバック時に値が初期化されないようにするには、IsPostBackプロパティの値を確認すればOKでしょう。 詳細ついては、「Visual Basic および Visual C# の概念」-「Web フォーム ページの処理」あたりをMSDNライブラリで調べてみて下さい。 【追記】 ...って、まゆりんさんが先に同じ事書いてますね。 [ メッセージ編集済み 編集者: きくちゃん 編集日時 2003-09-19 12:37 ] | ||||
|
投稿日時: 2003-09-19 13:10
まゆみ 様、きくちゃん 様、ありがとうございます。
無事解決しました。 引用: ------------------------------------------------------------------------- 5行目の前に If Not Page.IsPostBack Then 15行目の後に End If -------------------------------------------------------------------------------- ボタンのクリックイベントでPostBackが発生するということを、すっかり失念していました。 顔から火が出る思いです。 |
1