SqlException:不明确的列名

时间:2015-10-22 09:39:07

标签: c# sql sql-server

运行以下代码时出现此错误:

  

不明确的列名'约会ID'。
  异常详细信息:System.Data.SqlClient.SqlException:不明确的列名' AppointmentID'。

     

来源错误:
  第68行:adapter.Fill(tbl);

这是导致错误的函数:

public Transaction Payment
{
    get
    {
        return Db.Transaction.FindWhere("[AppointmentID]=@0 AND [Type]='paym'", SqlDb.Params(this.ID));
    }
}

交易结构:

public partial class Transaction : SqlRow
{
    public int CID { get; set; }

    public DateTime Date { get; set; }
    public string Type { get; set; }
    public string Description { get; set; }
    public decimal Amount { get; set; }
    public decimal Balance { get; set; }
    public int? AppointmentID { get; set; }
    public int LocationID { get; set; }
}

可能是什么原因?

2 个答案:

答案 0 :(得分:3)

例外说明了一切。在不同的表中有多个名为AppointmentID的列。您可以在查询中使用table aliases或使用[TableName].[AppointmentID]

您应该共享您的SQL代码以获得更具体的帮助。

答案 1 :(得分:1)

查看您的查询。多表中的AppointmentID列。

您必须使用表别名there

例如:

CREATE TABLE Table1 
(    
   ID int,    
   AppointmentID int,    
   FirstName  varchar(255)
 );

 CREATE TABLE Table2 
 (    
    ID int,    
    AppointmentID int,    
    LastName  varchar(255)
 );

 Select A.FirstName , A.AppointmentID  , B.LastName , B.AppointmentID  
   From Table1 A, Table2 B   
  Where A.AppointmentID  = B.AppointmentID ;