2014-10-04 79 views
0

请给我建议,我有一些代码,在其执行过程中显示此异常: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(); 
}  
+6

您没有表格智慧你的sql语句中的别名T.如果你先在SqlServer Management Studio中运行sql语句,那么你可以修复它。 – rene 2014-10-04 12:24:18

+0

是的,看起来像你没有加入你的表,领土(或任何实际的名字是) – 2014-10-04 12:26:10

回答

0

误差与多部分组成的标识符XXXX无法绑定。表示如果XXXX由表的别名组成,则应检查该别名是否已针对同一查询中的表进行定义。 在您的方案中,您正在使用名称为“T”的别名,该名称从来没有为您的查询中的任何表格定义过(您的员工别名为E,订单为O,员工地区为ET)