我試圖加入用戶表來檢索用戶登錄名。 我希望有兩個INNER加入一個CreatedByUser_loginname
和ModifiedByUser_loginname
C#WPF SQL SELECT INNER JOIN
但此刻我只是想獲得SQL查詢字符串語法正確。 但是,當我用AS'name'更改INNER JOIN的名稱時,執行sqlreader()方法時會引發異常。如果我刪除了AS ...它可以工作,但是我無法將第二個INNER JOIN添加到同一個用戶表中以獲取modifiedbyuser登錄名的名稱。
這裏是有問題的代碼
這不工作
String sqlComStr = "SELECT Company_ID, Company_Name, Company_Address1, Company_Address2, Company_Address3, Company_Suburb, Company_City, " +
"Company_State, Company_PostCode, Company_Phone, Company_Fax, Company_WebsiteUrl, Company_Status, Company_ModifiedByUser_ID, Company_CreatedByUser_ID, " +
" [U1].User_LoginName " +
"FROM Company INNER JOIN [User] AS U1 ON [User].User_ID = [Company].Company_CreatedByUser_ID WHERE [Company].isDeleted = 0" + companyFilter;
這確實
String sqlComStr = "SELECT Company_ID, Company_Name, Company_Address1, Company_Address2, Company_Address3, Company_Suburb, Company_City, " +
"Company_State, Company_PostCode, Company_Phone, Company_Fax, Company_WebsiteUrl, Company_Status, Company_ModifiedByUser_ID, Company_CreatedByUser_ID, " +
" User_LoginName " +
"FROM Company INNER JOIN [User] ON [User].User_ID = [Company].Company_CreatedByUser_ID WHERE [Company].isDeleted = 0" + companyFilter;
....
String sqlComStr = "SELECT Company_ID, Company_Name, Company_Address1, Company_Address2, Company_Address3, Company_Suburb, Company_City, " +
"Company_State, Company_PostCode, Company_Phone, Company_Fax, Company_WebsiteUrl, Company_Status, Company_ModifiedByUser_ID, Company_CreatedByUser_ID, " +
" [U1].User_LoginName " +
"FROM Company INNER JOIN [User] AS U1 ON [User].User_ID = [Company].Company_CreatedByUser_ID WHERE [Company].isDeleted = 0" + companyFilter;
sqlcmd.CommandText = sqlComStr;
sqlCon.ConnectionString = "Data Source='PTSSHM\\SQLEXPRESS'; Initial Catalog='PROACTIVE'; Integrated Security=True;";
//sqlCon.ConnectionString = App.appSqlConnectionString;
sqlcmd.Connection = sqlCon;
try
{
sqlCon.Open();
SqlDataReader sqlReader = sqlcmd.ExecuteReader(CommandBehavior.Default);
// If no Exception thrown at this point clear the quote items
companys.Clear();
while (sqlReader.Read())
// Read each row and create a new quite item object int he quoteitems list
{
companys.Add(new Company((int)sqlReader["Company_ID"],
(string)sqlReader["Company_Name"].ToString(),
(string)sqlReader["Company_Address1"].ToString(),
(string)sqlReader["Company_Address2"].ToString(),
(string)sqlReader["Company_Address3"].ToString(),
(string)sqlReader["Company_Suburb"].ToString(),
(string)sqlReader["Company_City"].ToString(),
(string)sqlReader["Company_State"].ToString(),
(string)sqlReader["Company_PostCode"].ToString(),
(string)sqlReader["Company_Phone"].ToString(),
(string)sqlReader["Company_Fax"].ToString(),
(string)sqlReader["Company_WebsiteUrl"].ToString(),
(string)sqlReader["Company_Status"].ToString(),
(int)sqlReader["Company_ModifiedByUser_ID"],
(int)sqlReader["Company_CreatedByUser_ID"],
(string)sqlReader["[U1].User_LoginName"].ToString(), "d"));
}
}
請嘗試格式化所有的代碼片段如代碼。從C#源提取查詢以提供純SQL查詢將使其他人更容易提供幫助。 – 2009-12-13 12:15:41