2012-12-21 5 views
7

내부 조인을 사용하는 자체 SQL 문자열을 만들었습니다. 나는 여러 값을 가질 것이다 stocksList ListViewrecipeList ListView에 하나 개의 항목을 클릭하면 이제 문제가있다SQL 문자열 때문에 값이 중복 되었습니까?

string cmdstr = @"SELECT s.*, mdb.menu_name 
        FROM stocksdb s, recipelist rl 
        INNER JOIN menudb mdb ON rl.menu_ID = mdb.menu_ID 
        WHERE rl.stock_ID = '" + stockID + "'"; 

var cmd = new MySqlCommand(cmdstr, db.mycon); 
var dr = cmd.ExecuteReader(); 
while (dr.Read()) 
{ 
    var menuname = dr["menu_name"].ToString(); 

    stockIDTxtbox.Text = stockID; 
    nameTxtBox.Text = dr["stock_name"].ToString(); 
    availableTxtbox.Text = dr["stock_quantity"].ToString(); 
    pricePerPieceTxtbox.Text = dr["stock_pricePerPiece"].ToString(); 
    limitTxtBox.Text = dr["stock_limit"].ToString()); 

    recipeList.Items.Add(new ListViewItem(new[] { menuname }); 
} 

: 여기 내 기능입니다. 동일한 값의 5 또는 그와 비슷한 행.

+0

제 SQL 구문에 대한 문제를 해결하십시오. –

+0

샘플 데이터를 제공 할 수 있습니까? – Trisped

답변

5

stocksdb와의 가입이 누락되었습니다. 이 같은 것 :

SELECT s.*, mdb.menu_name 
    FROM stocksdb s 

    INNRER JOIN recipelist rl 
    ON s.stock_ID= r1.stock_ID <== this join was missing 

    INNER JOIN menudb mdb 
    ON rl.menu_ID = mdb.menu_ID 
    WHERE rl.stock_ID = '" + stockID 
+0

이것은 몇 번의 개조로 훌륭하게 작동했습니다 :) 감사합니다. –

+0

@JohnErnestGuadalupe 답변을 수락하는 것을 잊지 마십시오. – Trisped

관련 문제