C# 方法“Equals”没有重载接受“0”参数

C# 方法“Equals”没有重载接受“0”参数,c#,datareader,C#,Datareader,我正在尝试修复第34行和第35行下面代码中出现的错误 aliq.ALIQUOT_ID = reader["ALIQUOT_ID"].Equals(); aliq.SAMPLE_ID = reader["SAMPLE_ID"].Equals(); 小份ID和样本ID都是整数。然而,我写这些行的方式 我得到以下错误: Error 1 No overload for method 'Equals' takes '0' arguments C:...App_Code\DAL\DAL.cs

我正在尝试修复第34行和第35行下面代码中出现的错误

aliq.ALIQUOT_ID = reader["ALIQUOT_ID"].Equals();
aliq.SAMPLE_ID = reader["SAMPLE_ID"].Equals(); 
小份ID和样本ID都是整数。然而,我写这些行的方式 我得到以下错误:

Error   1   No overload for method 'Equals' takes '0' arguments C:...App_Code\DAL\DAL.cs    34. 
Error   2   No overload for method 'Equals' takes '0' arguments C:...App_Code\DAL\DAL.cs    35.
我应该如何写这两行来解决这个问题

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Oracle.DataAccess.Client;


namespace Data
{
/// <summary>
/// Summary description for DAL
/// </summary>
public class DAL
{
    public static Model.Aliquot GetAliquot_ID(int aliqID)
    {
        string cs =         ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
        OracleConnection conn = null;
        OracleDataReader reader = null;
        try
        {
            conn = new OracleConnection(cs);
            string oracle = "SELECT SAMPLE_ID, ALIQUOT_ID, MATRIX_TYPE FROM LIMS.ALIQUOT WHERE ALIQUOT_ID = '" + aliqID + "'";
            OracleCommand cmd = new OracleCommand(oracle, conn);
            conn.Open();
            reader = cmd.ExecuteReader();
            reader.Read();
            Model.Aliquot aliq = new Model.Aliquot();
            aliq.ALIQUOT_ID = reader["ALIQUOT_ID"].Equals();
            aliq.SAMPLE_ID = reader["SAMPLE_ID"].Equals();
            aliq.MATRIX_TYPE = reader["MATRIX_TYPE"].ToString();
            return aliq;
        }
        catch (Exception exp)
        {
            //Add Logging
            HttpContext.Current.Trace.Warn("Error", "Error in GetAliquot_ID()", exp);
        }
        finally
        {
            if (reader != null) reader.Close();
            if (conn != null && conn.State != ConnectionState.Closed) conn.Close();
        }
        return null;
    }
}

在这种情况下,Equals没有多大意义。你想干什么?将这些结果转换为int,对吗

所以不是

aliq.ALIQUOT_ID =reader["ALIQUOT_ID"].Equals();
使用

只需删除每行末尾的.Equals。假设表中每个字段都是整数,则读取器[]将为您提供相关值。

介绍OracleDataReader列索引器:

获取指定列的本机格式的值 列名

所以,你应该能够从这些行中删除.Equals

如果不起作用,请尝试:

Convert.ToInt32(reader["ALIQUOT_ID"])

希望这有帮助

.Equals需要一个参数,该参数就是您要测试相等性的项,例如item.EqualsAnotherItemaliq.ALIQUOT\u ID=System.Convert.ToInt32reader[ALIQUOT\u ID];还要注意,equals返回一个bool,它可能不是您想要指定的aliq.ALIQUOT_ID和aliq.SAMPLE_ID?equals应该做什么?异常是不言自明的,不使用0参数调用Equals。修复取决于它应该实现什么。我正在尝试从与等分“u ID”和“SAMPLE”ID相关联的表中返回值,它们是整数,就像下面一行中的矩阵类型是字符串。太好了!是的,我正在尝试将结果转换为int。谢谢@khlr。这个问题已经解决了。
Convert.ToInt32(reader["ALIQUOT_ID"])