1

SQL データベースからデータを読み取るために、VB.Net から C# に変換しようとしています。次のコードでエラーが発生します。「タイプ 'string' を 'bool' に暗黙的に変換することはできません」 . VB では問題なく動作します。このステートメントを C# に変換するにはどうすればよいですか?

chkNewEmployee.Checked = dr["chkNewEmployee"].ToString();
4

3 に答える 3

7
chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);

ToBoolean :

trueまたはfalse。基になる型の値に対して IConvertible.ToBoolean メソッドを呼び出すことによって返される値を反映します。値が null の場合、メソッドは false を返します。

必要に応じて、試してみるbool.Parseか、bool.TryParse

アップデート

bool.Parsebool.TryParseおよびConvert.ToBoolean:

  • 大文字と小文字を区別しない
  • 先頭と末尾の空白を無視する

bool.Parse:

  • 正しいは、trueまたはfalse
  • FormatException変換に失敗した場合にスローします

bool.TryParse:

  • 正しいは、trueまたはfalse
  • 変換に失敗した場合に例外をスローしません
  • true変換が成功した場合は戻り、そうでない場合はfalse
  • out bool result変換結果は第 2 パラメーター ( )を介して保存されます

Convert.ToBoolean:

  • 正しいtruefalseまたは(の場合にnull返されます)falsenull
  • FormatException変換に失敗した場合にスローします
于 2013-07-11T16:10:55.877 に答える
0

以下のコードの一部を試してみます。それが機能するかどうかを確認してください。そうでない場合は、例外を返す必要があります。

 try {
  chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
 }   
 catch (FormatException) {
   Console.WriteLine("Bad Format");
  }   
  catch (InvalidCastException) {
   Console.WriteLine("No Conversion");
  }   
于 2013-07-11T16:18:26.843 に答える