2017-04-04 15 views
0

の内部で定義された値を保持しますか?は、私は以下のようにwhile文の外で変数BinIdに割り当てられた値を使用しようとしているwhile文

編集:これは私がifに変更whilecmd.CommandText = "insert into mydb1.missedbin values (null, '" + personIDdata + "','" + dateFound + "','"+ BinId +"')";

+0

変数「BinId」を持つ「where」ステートメントはどこにありますか? – Adil

+0

申し訳ありませんが、編集中に書いていたはずです。 – Richard1996

+0

あなたの目標が何であるか理解できるように、動作していないコードの例を投稿してください。あなたがそれをフレーズする方法だから、それはちょうどうまくいくはずです – Andrei

答えて

0

BinId

でやろうとしているものです。これは、単一の値しか得られないため、しばらくの間必要がないため、1レコードしか存在しないからです。結果として得られるbinIdの値を確認して、正の数であることを確認する必要があります(これは、レコードがあれば期待される結果と思われます)。

int BinId = 0; 
cmd.CommandText = "SELECT max(binID) from bin"; 

// wrap your reader in a using block 
using(MySqlDataReader idReader = cmd.ExecuteReader()) 
{ 
    if (idReader.Read()) 
    { 
     BinId = idReader.GetInt32(0); 
     System.Diagnostics.Debug.WriteLine(BinId); 
    } 
    if(BinId < 1) 
     return; // You did not get a value so exit your method or do something.... 
} 

// NOTE: DO NOT DO THIS, always use parameterized queries 
cmd.CommandText = "insert into mydb1.missedbin values (null, '" + personIDdata + "','" + dateFound + "','"+ BinId +"')"; 

あなたのinsertステートメントについては、このようなクエリを書くことはありません。必ずパラメータ化されたクエリを使用してください。

+0

if文の外でまだ割り当てられていないようです。 – Richard1996

+0

@ Richard1996 - あなたはある時点でそれを割り当てる必要があります.... – Igor

関連する問題