如何将两列值添加到列表中

时间:2011-10-17 11:18:29

标签: c# asp.net mysql ajax ajaxcontroltoolkit

如何将两列值添加到列表中,两列位于不同的表中。电子邮件位于tbl_user表中,groupname位于tbl_group表中。我想为自动完成文本框的电子邮件和组名使用前缀文本。现在有了查询,我可以将电子邮件ID添加到列表中,当我输入arr时,会显示以arr开头的电子邮件ID,如何为groupname和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();
}

2 个答案:

答案 0 :(得分: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());
}

答案 1 :(得分:0)

如果您的表格列选择增加,那么您将需要填充自定义对象的列表。要实现您必须首先创建自定义对象类。