我有兩個表,第一個名為 TFile 的表包含兩列:FromCity 和 ToCity。它們將具有不同的值,但來自第二個表 (TCity) 的一列,特別是來自名為 CityName.Second 表名稱 TCity 的列,它們有兩列:IdCity AND CityName。
我的問題我需要顯示他們從第二個表 FromCity 和 ToCity 獲得的兩列的資料,兩次內連接。
我使用此代碼來做到這一點:
SqlCommand comm = new SqlCommand("select * from TFile "
"inner join TCity AS A ON TFile.FromCity = A.IdCity "
"inner join TCity AS B ON TFile.ToCity = B.IdCity " " WHERE " "TFile.Name", con);
然后向用戶顯示資料為:
SqlDataReader srd = comm.ExecuteReader();
if (srd.HasRows)
{
while (srd.Read())
{
//FromCity
TextFrom.Text = srd["CityName"].ToString();
//ToCity
TextTo.Text = srd["CityName"].ToString();//=======================here problem
}
}
在資料顯示的第一行中,我可以獲得城市的名稱,但如果我在第二行中重復,它只會重復資料。這里的問題。我不能使用不同的名稱來訪問第二個查詢,而不是欄位名稱 CityName。這是我顯示城市名稱的第二個表中的欄位名稱。
如何訪問此查詢中的資料:
"inner join TCity AS B ON TFile.ToCity = B.IdCity
因此,如果我訪問它,則可以在此行中顯示第二個資料:
TextTo.Text = srd["CityName"].ToString();
如何解決這個問題?
uj5u.com熱心網友回復:
我敢打賭,您需要創建欄位別名來區分來自同一表上多個連接的值。順便說一句,請確保在使用這些型別的查詢時保護自己免受“SQL 注入”的影響。如果您不知道“SQL 注入”是什么,那么請花一些時間查一下。
"select FromCityName=A.CityName, ToCityName=B.CityName, * from TFile "
和
//FromCity
TextFrom.Text = srd["FromCityName"].ToString();
//ToCity
TextTo.Text = srd["ToCityName"].ToString();//=======================here problem
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/387516.html
