4

テーブルに。という列がありますAllowComent。この列のデータ型はビットです。

私のC#コードでは、値を回復しようとしています

protected string RecoverAllowComent(string id)
{
    try
    {
        using(SqlConnection conexao = new SqlConnection(_conexao))
        {
            SqlCommand comando = new SqlCommand();
            comando.CommandText = "SELECT AllowComent FROM San_Blog WHERE Id = @Id";
            comando.Parameters.Add(new SqlParameter("@Id", id));
            comando.CommandType = CommandType.Text;
            comando.Connection = conexao;
            conexao.Open();
            comando.ExecuteNonQuery();

            SqlDataAdapter da = new SqlDataAdapter(comando);
            DataTable dt = new DataTable();
            da.Fill(dt);

            if (dt.Rows.Count > 0)
            {
                return dt.Rows[0].ItemArray[0].ToString();
            }
            else                    
                return "False";
         }
     }
     catch
     {
         return "False";
     }
}

しかし、私はエラーが発生しました Conversion failed when converting the nvarchar value ''1'' to data type int.

4

1 に答える 1

1

文字列型のpassingを渡しidます。idintに渡す必要があります。parameter

変化する

comando.Parameters.Add(new SqlParameter("@Id", id));

comando.Parameters.Add(new SqlParameter("@Id", int.Parse(id)));

可能であれば、RecoverAllowComentのパラメーターIDのタイプをintに変更して、文字列の型キャストをintに変更することができます。

于 2012-12-26T18:06:52.607 に答える