- PR -

ASP.netとオラクルについて

投稿者投稿内容
ひで
会議室デビュー日: 2006/05/26
投稿数: 5
投稿日時: 2006-05-26 12:03
今、ASP.netとoracle10gを使って学習しているのですが、
ODP.netを使ったオラクル接続で、リストボックスやドロップダウンリストには
データを入れることができたのですが、ラベルに直接データを入れることができません・・・何か方法はありますか?

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-26 12:14
引用:

ひでさんの書き込み (2006-05-26 12:03) より:

今、ASP.netとoracle10gを使って学習しているのですが、
ODP.netを使ったオラクル接続で、リストボックスやドロップダウンリストには
データを入れることができたのですが、ラベルに直接データを入れることができません・・・何か方法はありますか?


まず、"データを入れることができた" が、どういう意味なのか具体的に書いて頂けないでしょうか?

たとえば、DataSource に設定してバインドした場合はうまくいったが、
Label で同じようなことを試みても、できなかった... などです。

結果として、どうしてもバインドしたいのか、値が表示されればそれで良いのか、
どちらをご所望されているかもわからない状態ですよね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ひで
会議室デビュー日: 2006/05/26
投稿数: 5
投稿日時: 2006-05-26 13:22
説明が足りなくてすみませんでした。

>たとえば、DataSource に設定してバインドした場合はうまくいったが、
>Label で同じようなことを試みても、できなかった... などです。

その通りです。
Dim strSQL As String = "select * from nameage"
With DropDownList1
.DataSource = Createdatareader(strSQL)
.DataTextField = "name"
.DataValueField = "age"
.DataBind()
End With

リストボックスにはこれで表示されたのですが、
ラベルにデータを一つだけ表示するというやり方がわかりません。
バインドは必要ないと思うので、とりあえずDBから持ってきたデータを表示できればいいです。
ひで
会議室デビュー日: 2006/05/26
投稿数: 5
投稿日時: 2006-05-26 13:22
説明が足りなくてすみませんでした。

>たとえば、DataSource に設定してバインドした場合はうまくいったが、
>Label で同じようなことを試みても、できなかった... などです。

その通りです。
Dim strSQL As String = "select * from nameage"
With DropDownList1
.DataSource = Createdatareader(strSQL)
.DataTextField = "name"
.DataValueField = "age"
.DataBind()
End With

リストボックスにはこれで表示されたのですが、
ラベルにデータを一つだけ表示するというやり方がわかりません。
バインドは必要ないと思うので、とりあえずDBから持ってきたデータを表示できればいいです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-26 13:29
引用:

ひでさんの書き込み (2006-05-26 13:22) より:

バインドは必要ないと思うので、とりあえずDBから持ってきたデータを表示できればいいです。


~DataReader クラスあたりで Read すれば良いと思います。
決め打ちだったら、ExecuteScalar メソッドでも良いでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ひで
会議室デビュー日: 2006/05/26
投稿数: 5
投稿日時: 2006-05-30 15:59
返信が遅れて申し訳ありません。
いろいろ試してみたのですが書き方がよくわかりません・・・

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strSQL As String = "select age from nameage where age = 19"
    label1.Text = DataReader(strSQL).ToString
end sub

Private Function DataReader(ByVal strSQL As String) As DataSet
Dim con As New OracleConnection(ConfigurationSettings.AppSettings("conStringOraNw"))
Dim da As New OracleDataAdapter(strSQL, con)
Dim ds As New DataSet()
da.Fill(ds)
Return ds
End Function

のような書き方をしたんですが、System.Data.DataSetと表示されてしまいます。
どう書けばよろしいでしょうか・・?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-30 16:10
引用:

ひでさんの書き込み (2006-05-30 15:59) より:

Dim da As New OracleDataAdapter(strSQL, con)
Dim ds As New DataSet()
da.Fill(ds)
Return ds


「~DataAdapter を使いましょう」 と書いた覚えはないですよ。
(それと、Close や Dispose が、完全に漏れていますが、大丈夫ですか?)

私は、

> ~DataReader クラスあたりで Read すれば良いと思います。
> 決め打ちだったら、ExecuteScalar メソッドでも良いでしょう。

と書いています。

今回ならば、OracleDataReader クラスから Read メソッドを呼び出す、
または、OracleCommand から ExecuteScalar メソッドを呼び出す。

という意味合いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-05-30 16:48
こんな感じでしょうか。

コード:
Dim Command As Oracle.DataAccess.Client.OracleCommand
Dim Reader As Oracle.DataAccess.Client.OracleDataReader

Dim Conn As New Oracle.DataAccess.Client.OracleConnection(ConfigurationSettings.AppSettings("conStringOraNw"))

Try
  Conn.Open()

  Try
    Command = New Oracle.DataAccess.Client.OracleCommand(strSQL, Conn)
    Reader = Command.ExecuteReader

    If Reader.Read() Then
      1データ = Reader.Item("hoge")
    Else
      データなし
    End If
  Finally
    If Not Reader Is Nothing Then Reader.Close()
    If Not Command Is Nothing Then Command.Dispose()
  End Try
Finally
  If Not Conn Is Nothing Then Conn.Close()
  If Not Conn Is Nothing Then Conn.Dispose()
End Try


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