-1

でエラーが発生しExecuteScalar()ます。スカラー変数を宣言する必要があると書かれています@PicID。スカラー変数を宣言するにはどうすればよいですか? または、この機能全体を間違って実行していますか?

 public int GetTotalNoVotes(int PicRating, int PicID)
    {
        //get database connection string from config file 
        string strConectionString = ConfigurationManager.AppSettings["DataBaseConnection"];

        SqlConnection conn = new SqlConnection(strConectionString);
        conn.Open();

        SqlCommand oCommand = new SqlCommand("SELECT COUNT(1) AS Expr1 FROM Ratings WHERE PicRating = @PicRating) AND (PicID = @PicID)", conn);
        oCommand.Parameters.Add("@PictureID", SqlDbType.Int);
        oCommand.Parameters["@PictureID"].Value = PicID;

        oCommand.Parameters.Add("@PicRating", SqlDbType.Int);
        oCommand.Parameters["@PicRating"].Value = PicRating;

        object oValue = oCommand.ExecuteScalar();

        conn.Close();

        if (oValue == DBNull.Value)
        {
            return 0;
        }
        else
        {
            return Convert.ToInt32(oValue);
        }
    }
4

2 に答える 2

2

パラメータ @PictureId を定義したと思いますが、クエリで変数名 @PicId を使用しました

試す:

SqlCommand oCommand = new SqlCommand("SELECT COUNT(1) AS Expr1 FROM Ratings WHERE PicRating = @PicRating) AND (PicID = @PictureID)", conn);       
于 2011-11-21T00:38:21.750 に答える
1

スケーラー変数を宣言するにはどうすればよいですか?

ここにあなたの宣言コードがあります

oCommand.Parameters.Add("@PictureID", SqlDbType.Int);
oCommand.Parameters["@PictureID"].Value = PicID;

この場合、PictureID を PicID に変更する必要があります。

oCommand.Parameters.Add("@PicID", SqlDbType.Int);
oCommand.Parameters["@PicID"].Value = PicID;
于 2011-11-21T00:44:24.000 に答える