2011-10-17 5 views
1

두 개의 열 값을 목록에 추가하는 방법은 두 개의 열이 서로 다른 테이블에 있습니다. 전자 메일은 tbl_user 테이블에 있고 groupname은 tbl_group 테이블에 있습니다. 자동 완성 텍스트 상자의 전자 메일 및 그룹 이름에 접두어 텍스트를 사용하려고합니다. 이제 쿼리 내가 목록에 이메일 ID를 추가 할 수 그리고 난 다음, 언 입력 할 때 편곡으로 시작하는 이메일 ID가 나는 두 그룹 이름을 위해 할 수있는 방법을 표시하고 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

그냥 사용하는 null의 경우에도 배열을 반환 있는지 확인하는 방법은 두'내가 INT newOrgID = Convert.ToInt32 추가 할 – BrokenGlass

+0

루프 for' (. 세션 [ "uOrgID을"] ToString()); 이 값을 가져오고 이것을 @OrganisationID에 대한 param 값에 추가하십시오 – Mark

답변

1

그냥 다른 열을 추가 가치도?

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 쿼리를 수정할 수 있습니다 - 어쩌면 내가 제대로 질문을 이해하지 않지만이 간단해야 테이블은 Email 제 1 및 GroupName 두 번째 두 개의 열입니다했다 이메일에 대해 현재 어떻게 수행하는지에 대한 정보가 있습니다.이 경우 SQL 매개 변수를 사용해야합니다. 그렇지 않으면 SQL 주입 공격에 대해 열려 있습니다.

편집 : 업데이트 된 코드와

당신은 당신이 사용자 정의 개체 가득 목록을 필요로한다 루프 경우

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을 추가하는 방법, 예를 들어 "+ prefixText +"% ""와 같은 tbl_User.Email을 전자 메일로 보내려면 – Mark

+0

다른 곳에 'Where' 조건을 추가 할 수 있습니다. SQL :'AND tbl_group.GroupName like ' "+ prefixText +"%' " – BrokenGlass

+0

@Mark : 이제 알겠습니다. 정말로 그룹 이름과 이메일 질의는 독립적이어야합니다. 개인적으로이 경우 두 개의 별도 SQL 쿼리를 수행합니다. – BrokenGlass

0

테이블의 열 선택 증가 두 가지를 사용해야합니다. 달성하려면 사용자 정의 객체 클래스를 먼저 만들어야합니다.