2016-05-28 14 views
0

enter image description here私は2つのテーブルを持っていて、1つのテーブルの名前は(memberform)で、カラムid、name、モバイルの例1、dimitris、69xxxxxxx、およびカラム名、グループ名、メンバーidの例dimitris、dancegroup、1私はグループ名のグループから= ComboBox1のとグループ名が存在する行からMEMBERIDは、私はこの複数のテーブルから選択しますか?

ような何かをしようとしているmemberform.id

と同じであるリッチテキストボックスに抽出したい (MEMBERIDは、IDと同じです)

using (var command = new SqlCommand("select mobile from memberform where memberform.id=groups.memberid and groups.groupname='" + comboBox1.Text + "'", con)) // 
using (var reader = command.ExecuteReader()) 
+1

1. qour質問は何ですか? 2完全な検証可能コードを与える –

+0

選択コードを書く方法 – Dim

+0

@Dim私の更新された回答を確認できますか? – Arulkumar

答えて

1

生のSQLクエリは

です。

同じことがあなたのSqlCommandオブジェクトに書き込むことができますが、

using (var command = new SqlCommand("SELECT M.mobile FROM memberform M JOIN groups G ON G.memberid = M.id WHERE G.groupname = '" + comboBox1.Text + "'", con)) 

ですUPDATE:

上記のアプローチは、SQLインジェクション攻撃のために可能なので、明示的にSqlParameter

でパラメータを渡すことができます
using (var command = new SqlCommand("SELECT M.mobile FROM memberform M JOIN groups G ON G.memberid = M.id WHERE G.groupname = @GroupName", con)) 
{ 
    command.Parameters.Add(new SqlParameter("GroupName", comboBox1.Text); 
    using (var reader = command.ExecuteReader()) 
    .... 
+0

パラメータを使用していないため、下に表示されます。 – Bauss

+0

@Bauss 'SqlParamter'または単に' comboBox1.Text'を意味しますか? – Arulkumar

+0

Sqlパラメータ。それ以外の場合、クエリはSQLインジェクションに開放されます。 – Bauss

0

なぜ最初のテーブルから選択しないかは、数値を取得してから2番目のテーブルから選択しますか?

@Edit:

private void GetData() 
{ 
    // Get the ID using the name 
    string id, yourData; 
    SqlConnection con = new SqlConnection(connectionString); 
    SqlCommand cmd = new SqlCommand("SELECT * FROM Table1 WHERE [email protected]", con); 
    cmd.Parameters.Add("@name", "dimitris"); 
    con.Open(); 
    SqlDataReader reader = cmd.ExecuteReader(); 
    while (reader.Read()) 
     id = reader["Id"].ToString(); 
    con.Close(); 

    // Get whatever you want using that ID 
    cmd.CommandText = "SELECT * FROM Table2 WHERE [email protected]"; 
    cmd.Parameters.Add("@id", id); 
    con.Open(); 
    reader = cmd.ExecuteReader(); 
    while (reader.Read()) 
     yourData = reader["ColumnName"].ToString(); 
    con.Close(); 
} 
関連する問題