sql >> データベース >  >> RDS >> Sqlserver

指定されたキャストは C# を使用した有効なエラーではありません

    cmd1.ExecuteScalar() ボックス化された整数を返していません。それをオブジェクトに割り当て、デバッガーでそれを見て、それが実際に何であるかを確認してください。

    Decimal または double を返すことになると思いますが、次のことを行う必要があります。

    Int32 result = (Int32)(double)cmd1.ExecuteScalar();
    

    または:

    Int32 result = (Int32)(Decimal)cmd1.ExecuteScalar();
    

    [以下のコメントで質問に応じて編集]

    10 進数値を保持するには、次のようにします:

    Decimal result = (Decimal) cmd1.ExecuteScalar();
    

    必要に応じて、10 進数を double にキャストできます:

    double result = (double)(Decimal) cmd1.ExectuteScalar();
    


    1. インデックスを使用して類似した単語を検索する

    2. テーブル全体で変更データキャプチャ(CDC)を有効にする方法、またはSQLServerの列のリストを使用してテーブルでCDCを有効にする方法

    3. getSingleScalarResult()およびgroupBy()を介してカウントクエリ結果を取得します-例外

    4. インラインSelectステートメントを使用したサブクエリを使用したクエリへの内部結合の追加