SqlException未处理

时间:2014-10-04 12:22:31

标签: c# sql-server sqlexception

请给我建议,我有代码,在执行期间显示此异常:

  

SqlException未处理多部分标识符" T.TerritoryDe​​scription"无法受约束   多部分标识符" T.TerritoryID"无法受约束   多部分标识符" T.TerritoryDe​​scription"无法受约束。

当我在Management Studio中运行SQL查询时,我得到了一些结果。当我在Visual Studio中使用此脚本运行代码时,我在此代码行中获得异常

reader = command.ExecuteReader();

这是我的代码:

public void databaseQuestion()
{
    SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
    SqlCommand command = 
       new SqlCommand((@"select T.TerritoryID,T.TerritoryDescription,avg(O.Freight)
                         from Employees E
                         inner join EmployeeTerritories ET on E.EmployeeID = ET.EmployeeID
                         inner join Orders O on E.EmployeeID = O.EmployeeID
                         where T.TerritoryDescription ='Bedford'
                         group by T.TerritoryID,T.TerritoryDescription,O.Freight") ,con);
    dbFile = filePath + @"\sqlFile.txt";

    SqlDataReader reader;

    con.Open();
    reader = command.ExecuteReader();

    using (StreamWriter file = new StreamWriter(dbFile, false))
    {
        while (reader.Read())
        {
            file.WriteLine(reader["T.TerritoryID"] + "\t" + reader["T.TerritoryDescription"]+ "\t" +reader["O.Freight"]);
        }
    }

    reader.Close();
    con.Close();
}     

1 个答案:

答案 0 :(得分:0)

错误无法绑定多部分标识符XXXX。如果XXXX由表的别名组成,则应检查是否已为同一查询中的表定义了此别名。 在您的方案中,您使用的名称为“T”的别名从未为查询中的任何表定义(您有别名E代表员工,O代表订单,ET代表EmployeeTerritories。)