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

您正在传递id具有字符串类型的传递。你需要传递intparameterid。

改变

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 回答