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

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

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

Re[6]: データベースからデータを取得する方法


(過去ログ 43 を表示中)

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

■23215 / inTopicNo.1)  データベースからデータを取得する方法
  
□投稿者/ ぽっち (15回)-(2008/08/11(Mon) 14:18:30)

分類:[ASP.NET (C#)] 

こんにちは、連日お世話になります。

現在、ある取得した値をデータベースにある値と比較して、
一致したデータだけを取り出すというプログラムの作成で困っています。

因みに
開発環境は、WindowsXP・VisualStudio2005
言語は、MySQL・C#・ASP.NET

になります。

SQL文は、判るのですがどうやってそれを書けばいいのか、比較方法と取得が分からず困っています。

int Num //比較する値を取得している。

■SQL文は以下の通りです。

SELECT Name FROM ListTable WHERE DeleteFlag = 0 And GNum = Num


このSQL文で取得したNameをラベル(ID:lblname)に出力させたいのですが、どうコードを書くのか
お手数ですがご教授下さい。

引用返信 編集キー/
■23217 / inTopicNo.2)  Re[1]: データベースからデータを取得する方法
□投稿者/ επιστημη (1214回)-(2008/08/11(Mon) 14:26:25)
επιστημη さんの Web サイト
> このSQL文で取得したNameをラベル(ID:lblname)に出力させたいのですが、どうコードを書くのか

lblname.Text = 取得したName;

引用返信 編集キー/
■23218 / inTopicNo.3)  Re[1]: データベースからデータを取得する方法
□投稿者/ 鶏唐揚 (276回)-(2008/08/11(Mon) 14:26:56)
2008/08/11(Mon) 14:27:49 編集(投稿者)

No23215 (ぽっち さん) に返信
> こんにちは、連日お世話になります。
>
> 現在、ある取得した値をデータベースにある値と比較して、
> 一致したデータだけを取り出すというプログラムの作成で困っています。
SQL文を発行する方法がわからんってことでしょうか

それならADO.NETあたりを調べてみるとよくわかると思います。
(DBの種類によって若干書き方が変わってくるのでそこらへんも調べると尚良し)

http://www.microsoft.com/japan/msdn/net/adonet/genericdacode.aspx


'なんかMySQLの公式サイトにADO.NETドライバ発見。製品インストールしてるなら入ってそうですが
 実稼動環境にはドライバだけでよさげ?使い方も書いてあるかもしれない

http://dev.mysql.com/doc/refman/5.1/ja/connector-net.html
引用返信 編集キー/
■23219 / inTopicNo.4)  Re[2]: データベースからデータを取得する方法
□投稿者/ ロック (61回)-(2008/08/11(Mon) 14:41:32)
こことか、わかりやすくて良かったです。

http://www.atmarkit.co.jp/fdotnet/basics/adonet_index/index.html
http://www.atmarkit.co.jp/fdotnet/aspnet/index/index.html

引用返信 編集キー/
■23223 / inTopicNo.5)  Re[2]: データベースからデータを取得する方法
□投稿者/ ぽっち (16回)-(2008/08/11(Mon) 15:15:32)
No23217 (επιστημη さん) に返信
>>このSQL文で取得したNameをラベル(ID:lblname)に出力させたいのですが、どうコードを書くのか
>
> lblname.Text = 取得したName;
>

返信有難うございます。
そこは判るのですが、SQLの発行がよく分からず、
取得した変数をSQL文とどう比較すればよいのか、比較する時のSQL文の書き方が分からないのです。
質問の書き方が悪くて申し訳ないです。
引用返信 編集キー/
■23225 / inTopicNo.6)  Re[2]: データベースからデータを取得する方法
□投稿者/ ぽっち (17回)-(2008/08/11(Mon) 15:19:41)
No23218 (鶏唐揚 さん) に返信
> 2008/08/11(Mon) 14:27:49 編集(投稿者)
>
> ■No23215 (ぽっち さん) に返信
>>こんにちは、連日お世話になります。
>>
>>現在、ある取得した値をデータベースにある値と比較して、
>>一致したデータだけを取り出すというプログラムの作成で困っています。
> SQL文を発行する方法がわからんってことでしょうか
>
> それならADO.NETあたりを調べてみるとよくわかると思います。
> (DBの種類によって若干書き方が変わってくるのでそこらへんも調べると尚良し)
>
> http://www.microsoft.com/japan/msdn/net/adonet/genericdacode.aspx
>
>
> 'なんかMySQLの公式サイトにADO.NETドライバ発見。製品インストールしてるなら入ってそうですが
>  実稼動環境にはドライバだけでよさげ?使い方も書いてあるかもしれない
>
> http://dev.mysql.com/doc/refman/5.1/ja/connector-net.html


返信有難うございます。
確かにMySQLを使っているのですが、実は私は別のPCのMySQLをCSEで見ている状況ですので、直接MySQLを見ている訳ではないのです。
すみません、説明不足でした。

しかし、上記サイトの方は参考にさせていただきます。

> SQL文を発行する方法がわからんってことでしょうか

そのとおりです。取得してきた値(変数)とデータベース上の(GNum)との比較の書き方が分からずに
困っています。
引用返信 編集キー/
■23226 / inTopicNo.7)  Re[3]: データベースからデータを取得する方法
□投稿者/ ぽっち (18回)-(2008/08/11(Mon) 15:20:13)
No23219 (ロック さん) に返信
> こことか、わかりやすくて良かったです。
>
> http://www.atmarkit.co.jp/fdotnet/basics/adonet_index/index.html
> http://www.atmarkit.co.jp/fdotnet/aspnet/index/index.html
>

返信有難うございます。助かります。
ぜひ参考にさせていただきます!
引用返信 編集キー/
■23227 / inTopicNo.8)  Re[3]: データベースからデータを取得する方法
□投稿者/ επιστημη (1216回)-(2008/08/11(Mon) 15:20:44)
επιστημη さんの Web サイト
> 取得した変数をSQL文とどう比較すればよいのか、比較する時のSQL文の書き方が分からないのです。

つまり int Num に 123 と入っていれば
"SELECT Name FROM ListTable WHERE DeleteFlag = 0 And GNum = 123"
ってな文字列を作りたいのですね。

string queryString = string.Format("SELECT Name FROM ListTable WHERE DeleteFlag = 0 And GNum = {0}", Num);


引用返信 編集キー/
■23228 / inTopicNo.9)  Re[4]: データベースからデータを取得する方法
□投稿者/ ぽっち (19回)-(2008/08/11(Mon) 15:24:38)
No23227 (επιστημη さん) に返信
>>取得した変数をSQL文とどう比較すればよいのか、比較する時のSQL文の書き方が分からないのです。
>
> つまり int Num に 123 と入っていれば
> "SELECT Name FROM ListTable WHERE DeleteFlag = 0 And GNum = 123"
> ってな文字列を作りたいのですね。
>
> string queryString = string.Format("SELECT Name FROM ListTable WHERE DeleteFlag = 0 And GNum = {0}", Num);
>
>

返信有難うございます。
そのとおりです。そうやって書くのですね、
{0}の書き方や、変数への代入が分からず、[]とかいろいろやってたのですが・・・有難うございました。

ところで、発行したSQLの取得した値をまた変数へ戻すには、どうするのでしょうか・・・?

引用返信 編集キー/
■23229 / inTopicNo.10)  Re[5]: データベースからデータを取得する方法
□投稿者/ επιστημη (1217回)-(2008/08/11(Mon) 15:29:22)
επιστημη さんの Web サイト
2008/08/11(Mon) 15:33:34 編集(投稿者)

> そのとおりです。そうやって書くのですね、

差し込むのが数だったので簡単な方法を紹介しましたが、
ユーザがテキストボックスかなんかに入力した文字列をこの方法で
SQL文にそのまま差し込んじゃダメですよ。SQL-injectionの餌食になります。
安全に差し込める"パラメータのバインド"って方法があるはずなのでそっちを使ってください。

> ところで、発行したSQLの取得した値をまた変数へ戻すには、どうするのでしょうか・・・?

Num = 取得した値;

引用返信 編集キー/
■23230 / inTopicNo.11)  Re[4]: データベースからデータを取得する方法
□投稿者/ やじゅ (529回)-(2008/08/11(Mon) 15:38:01)
やじゅ さんの Web サイト
2008/08/11(Mon) 15:38:40 編集(投稿者)

No23227 (επιστημη さん) に返信
> string queryString = string.Format("SELECT Name FROM ListTable WHERE DeleteFlag = 0 And GNum = {0}", Num);
>

その方法だと、SQLインジェクションになりえるので、おすすめしません。
パラメータを使って渡した方がよいです。
http://japan.zdnet.com/sp/feature/07websecur/story/0,3800078626,20361777,00.htm
引用返信 編集キー/
■23231 / inTopicNo.12)  Re[5]: データベースからデータを取得する方法
□投稿者/ επιστημη (1218回)-(2008/08/11(Mon) 15:40:27)
επιστημη さんの Web サイト
> その方法だと、SQLインジェクションになりえる、おすすめしません。

intでもインジェクションが起こるのかー...
失礼しました。パラメータ使ってください。

# DBオンチがしゃしゃり出るもんじゃねぇなぁ ^^;

引用返信 編集キー/
■23232 / inTopicNo.13)  Re[5]: データベースからデータを取得する方法
□投稿者/ ぽっち (21回)-(2008/08/11(Mon) 15:46:54)
No23230 (やじゅ さん) に返信
> 2008/08/11(Mon) 15:38:40 編集(投稿者)
>
> ■No23227 (επιστημη さん) に返信
>>string queryString = string.Format("SELECT Name FROM ListTable WHERE DeleteFlag = 0 And GNum = {0}", Num);
>>
>
> その方法だと、SQLインジェクションになりえるので、おすすめしません。
> パラメータを使って渡した方がよいです。
> http://japan.zdnet.com/sp/feature/07websecur/story/0,3800078626,20361777,00.htm

返信有難うございます。
パラメータはさらに苦手なのですが・・・勉強してみます。
引用返信 編集キー/
■23233 / inTopicNo.14)  Re[6]: データベースからデータを取得する方法
□投稿者/ やじゅ (530回)-(2008/08/11(Mon) 17:00:11)
やじゅ さんの Web サイト
No23231 (επιστημη さん) に返信
>>その方法だと、SQLインジェクションになりえる、おすすめしません。
>
> intでもインジェクションが起こるのかー...
> 失礼しました。パラメータ使ってください。
>

intなら起きないと思います・・・(^^;
でも、パラメータでやる癖を付けた方がいいかなと思ったので指摘しました。
引用返信 編集キー/
■23234 / inTopicNo.15)  Re[7]: データベースからデータを取得する方法
□投稿者/ επιστημη (1219回)-(2008/08/11(Mon) 17:03:13)
επιστημη さんの Web サイト
> intなら起きないと思います・・・(^^;
> でも、パラメータでやる癖を付けた方がいいかなと思ったので指摘しました。

了解。使い分けるくらいならパラメータ一本でイケと。

引用返信 編集キー/
■23237 / inTopicNo.16)  Re[8]: データベースからデータを取得する方法
□投稿者/ こあら (16回)-(2008/08/11(Mon) 17:54:40)
>>intなら起きないと思います・・・(^^;
>>でも、パラメータでやる癖を付けた方がいいかなと思ったので指摘しました。

> 了解。使い分けるくらいならパラメータ一本でイケと。

いや。使い分けた上でパラメータを使うのがベストかと。
引用返信 編集キー/
■23261 / inTopicNo.17)  Re[6]: データベースからデータを取得する方法
□投稿者/ ぽっち (22回)-(2008/08/12(Tue) 09:47:37)
No23230 (やじゅ さん) に返信
No23227 (επιστημη さん) に返信
No23237 (こあら さん) に返信


無事解決致しました。
アドバイス・助言等本当に助かりました!!
有難うございます。

解決に至ったソースですが、一部載せておきます。
セッションで取得してきたNumを、別メソッドのGetLIST_Dataに渡し、そこで取得してきたものをページロード内で
動かしています。

private void GetLIST_Data(int num )
{
//データベースと比較し、データを取得
SetModel model = SetModel.GetInstance();
DataTable dt = model.GetListName(num);
DataRow Row = dt.Rows[0];
//取得したデータのグループ名をラベルに出力
this.lblName.Text = HttpUtility.HtmlEncode((String)Row["Name"]);
}


SQL文は、皆様に教えて頂いた形を参考にしながら、パラメータを利用しました。


解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -