2014-10-04 100 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)