MySQLにてASP.NETで使っている変数と一致するものを抜き出すには?

解決


エメトリアス  2012-06-01 23:09:15  No: 147626  IP: 192.*.*.*

ASP.NET C#とMySQLで、データの受け渡しを行う方法についてですが、
cmd.CommandTextを用いて、

cmd.CommandText = "SELECT a , b FROM c WHERE d = 'e' ";

のように、記述する方法で、

この場合には、eの値を、ASP.NETで、

TextBox1.TEXT = e ;

のように、変数にした場合の、SQLでの記述方法が分かりません。

他の記述方法もあるかとは思いますが、まだ初歩の段階ですので、
上記の方法にて、利用できる記述方法を教えていただきたいです。

テキストボックスに入力された値を、MySQLのデータベースから検索し、
ログインするという、プログラムです。

編集 削除
魔界の仮面弁士  2012-06-02 01:39:41  No: 147627  IP: 192.*.*.*

> ASP.NET C#とMySQLで、
VBでは無く? (ここは Visual Basic .NET 用の掲示板なのですが…)

> cmd.CommandTextを用いて、
この場合の cmd は、MySqlCommand クラスでしょうか?
それとも OleDbCommand クラス? あるいは ADODB.Command ?

> cmd.CommandText = "SELECT a , b FROM c WHERE d = 'e' ";
これは、c テーブルの d 列の内容が「e」という文字であるレコードを
抽出しようとしていることになりますね。

> TextBox1.TEXT = e ;
C# ユーザーなら、大文字小文字も意識しましょう。

// 下記 2 行の違いは分かりますか?
TextBox1.Text = e ;
TextBox1.Text = "e" ;

// この 2 行の違いは分かりますか?
TextBox1.Text = "変数「e」の内容";
TextBox1.Text = "変数「" + e + "」の内容";


> cmd.CommandText = "SELECT a , b FROM c WHERE d = 'e' ";
> のように、記述する方法で、
できればパラメータ化した方が良いのですが、直接埋め込むなら
= "SELECT a , b FROM c WHERE d = '" + e.Replace("'", "''") + "'";
ですかね。変数 e が String 型(かつ null ではない)という前提です。

なお Replace を併用しているのは、e = "I'm Emetriath." のように
「'」が含まれる文字列が渡された場合への対策です。

編集 削除
エメトリアス  2012-06-02 07:09:37  No: 147628  IP: 192.*.*.*

ありがとうございます。

お陰様で、前に書いたプログラムで、" "で、分割していたのを思い出しました。

無事に値を持ってくることが出来ました。

VBだったのですね。勘違いしておりました。申し訳ありません。

編集 削除