の内部で定義された値を保持しますか?は、私は以下のようにwhile文の外で変数BinIdに割り当てられた値を使用しようとしているwhile文
編集:これは私がif
に変更while
cmd.CommandText = "insert into mydb1.missedbin values (null, '" + personIDdata + "','" + dateFound + "','"+ BinId +"')";
の内部で定義された値を保持しますか?は、私は以下のようにwhile文の外で変数BinIdに割り当てられた値を使用しようとしているwhile文
編集:これは私がif
に変更while
cmd.CommandText = "insert into mydb1.missedbin values (null, '" + personIDdata + "','" + dateFound + "','"+ BinId +"')";
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ステートメントについては、このようなクエリを書くことはありません。必ずパラメータ化されたクエリを使用してください。
if文の外でまだ割り当てられていないようです。 – Richard1996
@ Richard1996 - あなたはある時点でそれを割り当てる必要があります.... – Igor
変数「BinId」を持つ「where」ステートメントはどこにありますか? – Adil
申し訳ありませんが、編集中に書いていたはずです。 – Richard1996
あなたの目標が何であるか理解できるように、動作していないコードの例を投稿してください。あなたがそれをフレーズする方法だから、それはちょうどうまくいくはずです – Andrei