0

我在一页上有 2 个面板(SAPInfo、OSInfo)。在 SAPInfo 面板中有 3 个文本框(SID、Client、User_id)和 1 个搜索按钮。单击搜索按钮后,我想在下一页的 Gridview 中显示 SAP 表的数据(user_id、Descriptio、sap_system_password)。同样在 OSInfo 面板中有 2 个文本框(IP/HostName,User_id)和 1 个 SEARCH 按钮。单击搜索按钮后,我想在同一个 Gridview 中显示 OS 表(user_id、Descriptio、os_system_password)的数据。Gridview 有 4 列(UserID,Description,Password,Change Password) SAP 表包含字段为(sid,client_no,user_id,sap_system_password,description) OS 表包含字段为(user_id,ip,host_name,os_system_password,description) 怎么做这个?请帮助..这是我的搜索按钮(SAP)代码

protected void btnSAPSearch_Click(object sender, EventArgs e)
{
    try
    {
        using (MySqlConnection conn = new MySqlConnection(clsUser.connStr))
        {
            conn.Open();
            string strQuery = "select DISTINCT user_id,description,sap_system_password from sap_password_info where user_id is not null";
            if (txtSid.Text !="")
            {
                strQuery += " AND sid = '" + txtSid.Text + "'";
            }
            if (txtClient.Text != "")
            {
                strQuery += " AND client_no = '" + txtClient.Text + "'";
            }
            if (txtUser.Text != "")
            {
                strQuery += " AND user_id = '" + txtUser.Text + "'";
            }

            MySqlCommand cmd = new MySqlCommand(strQuery, conn);
            DataTable dt = new DataTable();
            dt.Load(cmd.ExecuteReader(CommandBehavior.CloseConnection));
            Session["userinfo"] = dt;
            Response.Redirect("~\\PasswordInformation_Details.aspx");
        }
    }
    catch (Exception ex)
    {
        //lblMessage.Text = DataObjects.Error_Message();
        lblMsg.Text = ex.Message.ToString();
    }

}
4

1 回答 1

0

解决方案非常简单。将搜索条件作为查询字符串传递到您的其他页面。所以点击搜索按钮(SAP面板)构建一个查询字符串,如下所示

 //if sap
    string url = "Result.aspx?Mode=SAP&sid=some_sid&client=some_client&user_id=some_user_id;
    Response.Redirect(url, false);

所以点击搜索按钮(操作系统面板)

//if OS
string url = "Result.aspx?Mode=OS&ip=some_ip&user_id=some_userId;
Response.Redirect(url, false);

ON 结果页面 page_load

if(Request.QueryString["Mode"] =="SAP")
{
    //bring sap result dataset
}
else
{
    // bring os result dataset
}

//bind it to gridView
resultGridView.DataSource = dsResult
resultGridView.DataBind();

记住。在网格视图上使 autogeneratedcolumn = true 。现在您的网格视图将显示将给它的任何结果(3 列,4 列)。现在将动态生成列。

编辑 1

搜索后,您将获得一些带有结果的数据集。要更改网格标题,只需更改 dataTable 中的列名。您将给出的任何列都将由网格显示

datatable.Columns["original_column_name"].ColumnName = "new column name";

//For adding a new column, just simply do this to your result set
datatable.Columns.Add("Change Password");

编辑 2

string strQuery = "select DISTINCT user_id as User Id,description as Description,sap_system_password as Sap System Password from sap_password_info where user_id is not null";

另请参阅:列别名

于 2012-06-04T08:05:29.707 回答