Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlException:列名称不明确_C#_Sql_Sql Server - Fatal编程技术网

C# SqlException:列名称不明确

C# SqlException:列名称不明确,c#,sql,sql-server,C#,Sql,Sql Server,运行以下代码时,我遇到此错误: 列名称“AppointmentID”不明确。 异常详细信息:System.Data.SqlClient.SqlException:不明确的列名“AppointmentID” 源错误: 第68行:适配器填充(tbl) 这是导致错误的函数: public Transaction Payment { get { return Db.Transaction.FindWhere("[AppointmentID]=@0 AND [Type]='

运行以下代码时,我遇到此错误:

列名称“AppointmentID”不明确。
异常详细信息:System.Data.SqlClient.SqlException:不明确的列名“AppointmentID”

源错误:
第68行:适配器填充(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; }
}

原因可能是什么?

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


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

查看您的查询。多个表中的列AppointId

必须使用表别名

例如:
我们需要查看您的表结构(事务)。AppointmentId或Type在多个表中使用(假设存在联接)。完全限定列名
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 ;