2011-07-12 7 views
1

私はGetSerialNo関数を呼び出していますが、それはのようないくつかのエラーを示す:'decimal'型を暗黙的に 'int'に変換することはできません。明示的な変換は(?あなたはキャストが欠落している)が存在する

が暗黙のうちに「INT」に型「進」を変換できません。明示的な変換が存在します(キャストがありませんか?)。

誰でもこの問題の解決に手伝ってもらえますか?ここで

は、コードは次のとおりです。事前に

int slNo= GetSerailNo(keydata); 

private int GetSerailNo(String keydata) 
{ 

    SqlConnection con = new SqlConnection(@"server=Servername;database=DBNAME;uid=Username;pwd=Pwd;max pool size=250;Connect Timeout=0"); 
    con.Open(); 
    cmd = new SqlCommand("select isnull(max(slno)+1,1) from d001docs where source_keydata='" + keydata + "'", con); 
    dynamic no = cmd.ExecuteScalar(); 
    cmd.Dispose(); 
    con.Close(); 
    return no; 
} 

おかげ

+1

エラーメッセージをコピーして貼り付けてみませんか?人々は、コピー+貼り付けを使用してください! –

+2

なぜあなたは '動的'を使用していますか? – Steven

答えて

6
cmd.ExecuteScalar() 

あなたはそれを返す前に、あなたはint型に変換する必要があり小数を返します例えば、

return Convert.ToInt32(no); 
+0

IMO長い間、 'ExecuteScalar'は' object'を返します – V4Vendetta

+0

メソッドの戻り値の型はobjectです。ただし、実行時の実際の結果のタイプは、この場合は10進数です。 – Rik

+0

実際に彼はその場所でダイナミックを使用しました – V4Vendetta

関連する問題