アプリ版:「スタンプのみでお礼する」機能のリリースについて

OleDbConnectionや、OleDbDataAdapterのコントロールを使わずに
dropdownlistにDBにある列の値を設定したいとき、どうしたらいいでしょうか。
自分のコード
' 接続
Dim conn As New System.Data.OleDb.OleDbConnection( _
"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source=""C:\Inetpub\Database\情報DB.mdb"";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False")

strTerminal = "SELECT * FROM [コード]"
Dim dt1 As New System.Data.DataSet
''端末コードデータコピーする
If Not IsPostBack Then
adapterTerminal.Fill(dt1)
ddl1.DataSource = dt1
ddl1.DataMember = "[コード]"
ddl1.DataTextField = "[名称]"
ddl1.DataBind()
end If
実行しても、コンボボックスには空のまま><
設定方法くわしい方教えてください。
よろしくお願いします。

A 回答 (3件)

> なにかの設定間違ってるんでしょうか


> よろしくお願いします。

DropDownList コントロールの DataSource プロパティに DataSet を設定しているようですが、DataSet は複数の DataTable 等を含むコンテナですので、DataTable を設定するようにしてみてください。
ddlTerminalAssortment.DataSource = dsTerminal.Tables(0)

ただこういう単純なデータアクセスでは、DataSet を使うよりも DataReader を使った方が高速であると言われています。
Dim cmd As New System.Data.OleDb.OleDbCommand(strSql, conn)
cmd.Connection.Open()
Dim rd As System.Data.OleDb.OleDbDataReader = cmd.ExecuteReader()

DropDownList1.DataSource = rd
DropDownList1.DataMember = "m02"
DropDownList1.DataTextField = "m03"
DropDownList1.DataBind()
cmd.Connection.Close()
    • good
    • 0
この回答へのお礼

ありがとうございます。
うまく表示できました。

お礼日時:2007/08/15 18:21

> コンボボックスとデータベースの連結は一般どんな方法使うのでしょうか



バージョンにもよるのですが、
<ASP.NET 2.0 以前>
Connection オブジェクトを生成して接続文字列を設定。
Command オブジェクトを生成してデータを取得する SELECT コマンドを設定。(場合によっては Parameter を使って検索条件を指定したりも)
DataReader オブジェクトに Command オブジェクトの実行結果を突っ込む。
DropDownList コントロールの Items.Add で DataReader を ListItem に変換したものを追加する。
http://yunet.2.pro.tok2.com/contents/aspnet_db/i …

<ASP.NET 2.0>
DataSource コントロールを使う。
http://www.atmarkit.co.jp/fdotnet/asp2review/asp …
http://msdn2.microsoft.com/ja-jp/library/66xcbb9 …

この回答への補足

回答ありがとうございます。
こちらは
Dim conn As New System.Data.OleDb.OleDbConnection("Jet OLEDB:Database Password=;Data Source=""C:\Inetpub\wwwroot\Database\情報表DB.mdb"";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";")
ページロードイベント
strSql= "SELECT * FROM[テーブル名]"
''抽出したデータを取り出す
Dim adapterTerminal As New System.Data.OleDb.OleDbDataAdapter(strSql, conn)
Dim dsTerminal As New System.Data.DataSet
Dim adapterTerminal As New System.Data.OleDb.OleDbDataAdapter(strSql, conn)

adapterTerminal.Fill(dsTerminal)
ddlTerminalAssortment.DataSource = dsTerminal
ddlTerminalAssortment.DataMember = "コード"
ddlTerminalAssortment.DataTextField = "名称"
dlTerminalAssortment.DataBind()
で表示できませんでした。
なにかの設定間違ってるんでしょうか
よろしくお願いします。

補足日時:2007/08/15 14:25
    • good
    • 0

> OleDbConnectionや、OleDbDataAdapterのコントロールを使わずに


> dropdownlistにDBにある列の値を設定したいとき、どうしたらいいでしょうか。

ちょっとその真意が理解できないのでコレについては飛ばします。

試せる環境が手元にないので何とも言えないのですが、
DataAdapter の Select コマンドに SQL 文(strTerminal) や Connection (conn)を設定してないようですが?

この回答への補足

Dim adapterTerminal As New System.Data.OleDb.OleDbDataAdapter(strTerminal, conn)は設定していました。
記入漏れです。すみません。
コンボボックスとデータベースの連結は一般どんな方法使うのでしょうか

補足日時:2007/08/14 15:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!