C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: DBからDataGridViewへの読み込み


(過去ログ 86 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■51412 / inTopicNo.1)  DBからDropDownListへの読み込み
  
□投稿者/ ちょん (1回)-(2010/07/05(Mon) 01:03:28)

分類:[C#] 

2010/07/05(Mon) 10:23:31 編集(投稿者)
2010/07/05(Mon) 10:23:26 編集(投稿者)

お世話になります。

現在C#とSqlServer2008を使いFormアプリを作成しているのですが、
DBからDataGridViewへの読み込みが上手くいかない為、お聞きしたいと思います。

DataSetを用い、DBからDataSetにデータを読み込んでいます。
DBのあるカラム(氏名)のデータを読み込んで、そのデータをDropDownListに表示させたいと思っているのですが、
その方法がわからず悪戦苦闘しております。

sql文で氏名を取得した後、どのようなコードを記述すればDropDownListに表示出来るのでしょうか?

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

引用返信 編集キー/
■51416 / inTopicNo.2)  Re[1]: DBからDataGridViewへの読み込み
□投稿者/ マサヤ (61回)-(2010/07/05(Mon) 10:11:56)
DropDownListでしたらこちらを参考にしてください。
http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.dropdownlist(VS.80).aspx

最初にDataGridViewと記述してあるのですが、DropDownListになっているのは、なぜでしょうか?
引用返信 編集キー/
■51422 / inTopicNo.3)  Re[2]: DBからDataGridViewへの読み込み
□投稿者/ ちょん (3回)-(2010/07/05(Mon) 15:11:20)
No51416 (マサヤ さん) に返信
> DropDownListでしたらこちらを参考にしてください。
> http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.dropdownlist(VS.80).aspx
こちらのmsdnサイトを確認したのですが、私には難しく理解出来ませんでした。
具体的にはどのようにすればよいのでしょうか?

> 最初にDataGridViewと記述してあるのですが、DropDownListになっているのは、なぜでしょうか?
これはDataGridViewではなくDropDownListの間違いです。
引用返信 編集キー/
■51423 / inTopicNo.4)  Re[3]: DBからDataGridViewへの読み込み
□投稿者/ ごう (121回)-(2010/07/05(Mon) 15:40:20)
2010/07/05(Mon) 15:41:29 編集(投稿者)

No51422 (ちょん さん) に返信
> 具体的にはどのようにすればよいのでしょうか?


ソースコードからやりたいのなら(VBですが)
http://3939deb.seesaa.net/article/107838320.html


ヒントは
DataSource の設定
DataTextField、DataValueFieldの設定 
DataBindの実行 です。


引用返信 編集キー/
■51424 / inTopicNo.5)  Re[3]: DBからDataGridViewへの読み込み
□投稿者/ マサヤ (62回)-(2010/07/05(Mon) 15:51:32)
WebアプリケーションのDropDownListでよろしいでしょうか?
ASP.NETかWEBアプリケーションと明示するといいと思います。
Formだとわかりにくかったりします。

1.DBからのクエリ結果をDataSetで取得している
2.クエリ結果に氏名というカラムが含まれている
3.DropDownListには氏名を表示する(氏名以外のカラム値をバインドする必要は?)

まず1から2はできているものとします。

問題が3になる、と。

DataSet ds = new DataSet();
ds = クエリ結果;
for(int i = 0; i < ds.Tables["テーブル名"].Rows.Count;i++)
{
dropDownList1.Items.Add(ds.Tables["テーブル名"].Rows[i]["氏名"].ToString().Trim());
}

これで単純に氏名だけをバインドできます。

DataSetの中のDataTableには氏名カラムのみ入っているのでしょうか?
DataSetを使用している時点で、DropDownListにはTextとValueの二つが必要な気がします。

Selectedなどの考慮も忘れないようにするといいですよ。
引用返信 編集キー/
■51425 / inTopicNo.6)  Re[4]: DBからDataGridViewへの読み込み
□投稿者/ はつね (1297回)-(2010/07/05(Mon) 16:01:37)
No51424 (マサヤ さん) に返信
> DataSet ds = new DataSet();
> ds = クエリ結果;
> for(int i = 0; i < ds.Tables["テーブル名"].Rows.Count;i++)
> {
>   dropDownList1.Items.Add(ds.Tables["テーブル名"].Rows[i]["氏名"].ToString().Trim());
> }

DataSet ds = new DataSet();
ds = クエリ結果;
dropDownLost1.DataSource = ds.Tables[@"テーブル名"];
dropDownLost1.DataTextField = @"氏名";
dropDownLost1.DataValueField= @"氏名";
dropDownLost.DataBind

なんじゃ?(未確認)

引用返信 編集キー/
■51426 / inTopicNo.7)  Re[4]: DBからDataGridViewへの読み込み
□投稿者/ マサヤ (63回)-(2010/07/05(Mon) 16:21:58)
2010/07/05(Mon) 16:23:39 編集(投稿者)


for(int i = 0; i < ds.Tables["テーブル名"].Rows.Count;i++)
{
dropDownList1.Items.Add(ds.Tables["テーブル名"].Rows[i]["氏名"].ToString().Trim());
}

for(int i = 0; i < ds.Tables["テーブル名"].Rows.Count;i++)
{
dropDownList1.Items.Add(new ListItem(ds.Tables["テーブル名"].Rows[i]["氏名"].ToString().Trim()
, ds.Tables["テーブル名"].Rows[i]["ID"].ToString().Trim());
}
にしようかと考えました。

はつねさんの書き方のほうがスマートですね。

余計混乱する形になってしまいましたら申し訳ありません。

引用返信 編集キー/
■51428 / inTopicNo.8)  Re[5]: DBからDataGridViewへの読み込み
□投稿者/ ちょん (4回)-(2010/07/05(Mon) 16:50:44)
皆さんすみません。私の伝え方がまずかったです。
webアプリではなくて単にwindowアプリです。

DropDownListというのは(ココがまずかったです)comboBoxのスタイルのことを言ってました。
本当にすみません。ですので、DBを使用したwindowsアプリということになります。

DataSet dset = new DataSet();
SqlConnection cn = new SqlConnection();

cn.ConnectionString = @"Data Source = .\SQLEXPRESS;"
+ @"AttachDbFilename = C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\SCORE.mdf;"
+ @"Integrated Security = True;"
+ @"Connect Timeout = 30;";

dAdp = new SqlDataAdapter("select 氏名 from M_テーブル名", cn);
dAdp.Fill(dset, "テーブル名");

のような感じでクエリの取得までは出来ています。
ここからcomboBoxに氏名データをバインドしたいです。

DropDownListと言ってしまい、表現があいまいで申し訳ありませんでした。
引用返信 編集キー/
■51429 / inTopicNo.9)  Re[6]: DBからDataGridViewへの読み込み
□投稿者/ nori (115回)-(2010/07/05(Mon) 17:02:45)
2010/07/05(Mon) 17:03:30 編集(投稿者)

以下でどうですか?

comboBox.DataSource = dset.Tables["M_テーブル名"];
comboBox.DisplayMember = "氏名";
comboBox.ValueMember = "氏名";
引用返信 編集キー/
■51430 / inTopicNo.10)  Re[7]: DBからDataGridViewへの読み込み
□投稿者/ ちょん (5回)-(2010/07/05(Mon) 17:48:03)
No51429 (nori さん) に返信
> 2010/07/05(Mon) 17:03:30 編集(投稿者)
>
> 以下でどうですか?
>
> comboBox.DataSource = dset.Tables["M_テーブル名"];
> comboBox.DisplayMember = "氏名";
> comboBox.ValueMember = "氏名";

上記方法で取得できました。
また問題があれば聞きにくると思いますのでその際はよろしくお願いいたします。
皆さまありがとうございました。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -