0

次のようにストアド プロシージャを実行すると、指定されたキャストが無効であるというエラーが表示されます。

return (int)comm.ExecuteScalar();

SQL Server で実行すると 1 が返されるので、proc が機能していることがわかります。

キャストの何が問題になっていますか?

更新しました:

    public static int IsPresent(string userName, int inTime)
    {
        SqlConnection connObj = new SqlConnection();
        connObj.ConnectionString = Util.SQLConct();
        connObj.Open();

        SqlCommand comm = new SqlCommand("usp_IsUserLocked", connObj);

        comm.CommandType = CommandType.StoredProcedure;

        comm.Parameters.Add(new SqlParameter("@Username", userName));
        comm.Parameters.Add(new SqlParameter("@InTime", inTime));

        return (int)comm.ExecuteScalar();

    }

前もって感謝します

4

1 に答える 1

5

メソッドが double または int64、または (int) に暗黙的にキャストできないその他の型を返す可能性があります。Convert.ToInt32メソッドが正しい型を返すようにするために使用します。

using System;

...
return Convert.ToInt32(comm.ExecuteScalar());
于 2012-07-09T20:31:22.670 に答える