2011-10-17 54 views
1

如何將兩個列值添加到列表中,兩列列在不同的表中。電子郵件位於tbl_user表中,組名位於tbl_group表中。我想爲自動完成文本框的電子郵件和組名使用前綴文本。現在與查詢我能夠將電子郵件ID添加到列表中,當我輸入的常用3則電子郵件ID開始ARR顯示我怎麼能做到這一點兩個組名和EMAILID如何將兩個列值添加到列表

public static string[] GetCompletionList(string prefixText, int count, string contextKey) 
{ 
      MySqlCommand command = new MySqlCommand(); 


    string textforlist = "SELECT tbl_user.Email from tbl_user WHERE tbl_user.OrganisationID = '1' AND UserActive='Yes'AND tbl_User.Email like '" + prefixText + "%'"; 
    DataSet ds = new DataSet(); 
    MySqlParameter[] param = new MySqlParameter[1]; 
    param[0] = new MySqlParameter("@OrganisationID", MySqlDbType.Int32); 
    param[0].Value = count; 
    command.Parameters.AddWithValue("@OrganisationID", count); 
    using (DataServer server = new DataServer()) 
    { 

     ds = server.ExecuteQuery(CommandType.Text, textforlist, param); 

    } 
    string textforlist1 = "SELECT tbl_group.GroupName from tbl_group WHERE tbl_group.OrganisationID = '1' AND GroupActive='Yes'AND tbl_group.GroupName like '" + prefixText + "%'"; 
    DataSet ds1 = new DataSet(); 
    using (DataServer server = new DataServer()) 
    { 

     ds1 = server.ExecuteQuery(CommandType.Text, textforlist1, param); 

    } 
    List<string> cityList = new List<string>(); 
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
    { 
     cityList.Add(ds.Tables[0].Rows[i][0].ToString()); 
     cityList.Add(ds1.Tables[0].Rows[i][0].ToString()); 
    } 
    return cityList.ToArray(); 
} 
+0

如何確保它返回數組,即使1值爲空 – Mark

+0

只需使用兩個'for'循環 – BrokenGlass

+0

我想添加int newOrgID = Convert.ToInt32(Session [「uOrgID」]。ToString());獲取此值並將此值添加到@OrganisationID的參數值 – Mark

回答

1

只需添加另一列價值呢?也許我沒有正確認識這個問題,但這個應該是簡單的 - 你的表有兩列,Email是第一和GroupName第二:

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
{ 
    cityList.Add(ds.Tables[0].Rows[i][0].ToString()); 
    cityList.Add(ds.Tables[0].Rows[i][1].ToString()); 
} 

您可以修改您的SQL查詢來限制類似返回的組名到你目前如何做電子郵件 - 你真的應該使用SQL參數來做到這一點,否則你是開放的SQL注入攻擊。

編輯:

有了更新的代碼,你應該使用兩個for循環

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
{ 
    cityList.Add(ds.Tables[0].Rows[i][0].ToString()); 
} 

for (int i = 0; i < ds1.Tables[0].Rows.Count; i++) 
{ 
    cityList.Add(ds1.Tables[0].Rows[i][0].ToString()); 
} 
+0

如何添加tbl_group.GroupName,就像我爲電子郵件tbl_User.Email所做的那樣,如'「+ prefixText +」%'「; – Mark

+0

您可以在您的SQL:'AND tbl_group.GroupName like'「+ prefixText +」%'「' – BrokenGlass

+0

@Mark:我現在看到了 - 真的,您的羣組名稱和電子郵件查詢應該是獨立的。就個人而言,我會做兩個單獨的SQL查詢。 – BrokenGlass

0

如果你的表列選擇增加,那麼你將需要填充自定義對象名單。要實現您必須首先創建一個自定義對象類。