- - PR -
オブジェクト参照がオブジェクト インスタンスに設定されていません
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-09-09 09:51
asp.net2008でWEB予約システムを開発しています。使用言語はVBです。
「オブジェクト参照がオブジェクト インスタンスに設定されていません」という エラーが出て困っています。 データベースはmicrosoft acsess2003を使っています。 windows付属のIISを使用してwindowsXP professional でサーバを構築しています。 自分のパソコン内(アドレスにlocalhost+数字の出るやつ)で実行すると上記のエラーは出ませんが、一度WEBサイトのコピーを取りlocalhostやIISを使ったWEB上(別のパソコン)で実行すると上記のエラーが出ます。 ソースを示します。 ta.Update(tb)<−−−−−−−ここでエラーが出ます わかる方どうかご教授ください。 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ta As New 予約DataSetTableAdapters.予約TableAdapter Dim tb As New 予約DataSet.予約DataTable Dim r As 予約DataSet.予約Row tb = New 予約DataSet.予約DataTable r = tb.New予約Row Try '挿入 r.時間 = Label3.Text r.日時 = Label1.Text r.内容 = Label2.Text r.時間 = Label3.Text r.名前 = Label5.Text r.電話 = Label6.Text r.診察券番号 = Label4.Text r.状況 = "診察待ち" r.登録日時 = Now.ToString("MM" + "月" + "dd" + "日") + Now.ToString("(" + "ddd" + ")") + Now.ToString("HH" + "時" + "mm" + "分") r.削除日時 = "***" tb.Add予約Row(r) ta.Update(tb)<−−−−−−−ここでエラーが出る Response.Redirect("keka2.aspx") Catch exdb As DBConcurrencyException lblMessage.Text = exdb.GetBaseException.Message Return Catch ex As Exception lblMessage.Text = ex.GetBaseException.Message Return End Try End Sub | ||||||||||||||||||||||||||||
|
投稿日時: 2008-09-09 10:32
さかもとと申します。
Dim tb As New 予約DataSet.予約DataTable ここを ↓ Dim tb As 予約DataSet.予約DataTable と変更したらどうなりますか? すいません、追記です。 IIS上(別PC)に置いたときのtableadapterから見たmdbのパス(接続文字列)ってどうなっていますか? _________________ ------------------------------------------ 拝啓、さかもとと申します。 拝啓、さかもとと申します♪ [ メッセージ編集済み 編集者: さかもと 編集日時 2008-09-09 11:05 ] | ||||||||||||||||||||||||||||
|
投稿日時: 2008-09-09 12:34
'ta' か 'tb' どちらかが Nothing になっているのでしょうけど、どちらでしょうか?
そこは余計なインスタンスを生成しているだけで、NullReferenceException の原因にはならないかな... もちろん余計なことはしないに限ります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||||||||||
|
投稿日時: 2008-09-09 12:37
ここで発生しているエラーによって、「オブジェクト参照がオブジェクト インスタンスに設定されていません」というメッセージが表示されていますか?それを、どうやって確認しましたか? おそらく、ta.Update で発生するエラーはデータベースがらみのもので、別のメッセージが表示されていると思います。「オブジェクト参照…」のメッセージは、キャッチ句内で発生した別の例外だと思います。
「As New」という書き方で、どのようなことが起こるか、正しく把握していますか?
Redirect によって例外が発生しますよ?
う〜ん(^-^; まぁ、それでもいいんだけど、↓この方が見やすい。
それより、"登録日"は、検索のしやすさなどを考えると、DateTime 型のままとする方がよいと思います。(Access での型は知りません) つーか、型付けしてないのね?(-_-; 病院の診察予約のようですが、Access で大丈夫? | ||||||||||||||||||||||||||||
|
投稿日時: 2008-09-09 13:44
まずtbのインスタンスの生成について、
Dim tb As New 予約DataSet.予約DataTable tb = New 予約DataSet.予約DataTable なぜ宣言と同時にインスタンスを生成してあげているのに、 再び同じインスタンスを生成してあげる必要があるのでしょうか。 tb = New 予約DataSet.予約DataTableに関しては不必要な行です。削除しましょう。 次に、オブジェクト参照…についてのエラーですが、 'ta'、'tb'共にインスタンスの生成は行なわれていると思うので、問題ではないと思うのですが。。。 Updateメソッドの中身はどうなっているんですか?? | ||||||||||||||||||||||||||||
|
投稿日時: 2008-09-09 14:00
Kowさんの書き込み (2008-09-09 13:44) より:
>tb = New 予約DataSet.予約DataTableに関しては不必要な行です。削除しましょう。 削除しましたが結果は同じでした。 >次に、オブジェクト参照…についてのエラーですが、 >'ta'、'tb'共にインスタンスの生成は行なわれていると思うので、問題ではないと思うのですが。。。 >Updateメソッドの中身はどうなっているんですか?? Updateメソッドの中身とはどういう意味でしょうか? | ||||||||||||||||||||||||||||
|
投稿日時: 2008-09-09 14:03
ちなみにさっきのコードの最上段に
Imports System.Data.OleDb Imports System.Data と書いていますが何か問題あるでしょうか? | ||||||||||||||||||||||||||||
|
投稿日時: 2008-09-09 14:09
[quote]
Jittaさんの書き込み (2008-09-09 12:37) より: >ここで発生しているエラーによって、「オブジェクト参照がオブジェクト >インスタンスに設定されていません」というメッセージが表示されていますか? >それを、どうやって確認しましたか? Catch ex As Exception lblMessage.Text = ex.GetBaseException.Message Return End Try のところで発生しています >おそらく、ta.Update で発生するエラーはデータベースがらみのもので、 >別のメッセージが表示されていると思います。「オブジェクト参照…」 >のメッセージは、キャッチ句内で発生した別の例外だと思います。 。「オブジェクト参照…」のメッセージは確かにキャッチ句内で発生しています。 別の例外とはどういうことでしょうか? >「As New」という書き方で、どのようなことが起こるか、 >正しく把握していますか? 新しいインスタンスができていると思っていますが詳しくは理解していません。 >Redirect によって例外が発生しますよ? この分は大丈夫のようです。 >病院の診察予約のようですが、Access で大丈夫? どのような問題がありますか? |
1|2|3|4
次のページへ»