2017-07-26 12 views
1

私のアプリケーションでこの楽しいミニゲームを作成しようとしています。私の他のファイルで作業していると、 "read()"を呼び出す前にフィールドにアクセスしようとすると、無効な試みがあります。read()を呼び出す前にフィールドへのアクセスが無効になっています(読み込み後も)

 con.Open(); 

     MySqlCommand cmd = con.CreateCommand(); 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = "select * from users WHERE id='" + lblMainId.Text + "'"; 
     cmd.ExecuteNonQuery(); 

     MySqlDataReader mdr; 
     mdr = cmd.ExecuteReader(); 

     if (mdr.Read()) 
     { 
      cf.setMoney = Math.Round(mdr.GetDouble("money"), 2).ToString(); 
     } 
     else 
     { 
      MessageBox.Show("Failure - Please try again!"); 
     } 

     con.Close(); 

EDIT: が....私は " "それは、SELECT * FROMしようとしたので...私のコードでは、以前の" lblMainId.Text =" 作られたことが判明

私の悪いが、とにかく答えてくれてありがとう。..他のホープ誰かがそれらを使用することができます:)

答えて

0

私はあなたが

cmd.ExecuteNonQuery() 

行を削除する必要があると思います。電話に影響があるかどうか不明です

cmd.ExecuteReader() 

これは間違いありません。

+0

また、mdr.HasRowsをチェックせずにRead()を呼び出さないでください。ゼロ行が返されたときに読み取ると、例外もスローされます。それらのオブジェクトのすべてをブロックを使用して入れたり、手動で処分したりしてください。別の赤旗:浮動小数点数としてお金を保管しないでください。それをDECIMALタイプとして保管してください。 – dodexahedron

関連する問題