如何将sql查询从一个页面写入另一个页面

时间:2012-09-17 20:10:54

标签: c# asp.net sql-server web-applications

我目前正在开设第一个网站。我遇到的问题如下:我创建了一个标题为“CustomerList”的分页,显然是从sql server DB列出客户。我已经使记录可以点击而不使用GridView中包含的选择按钮。当我点击一条记录时,它会将我带到我想要的页面。但是,我似乎无法找到从该click事件写入sql查询到我想要的页面的方法。以下是我点击事件的代码:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow row = GridView1.SelectedRow;

    if (row.RowIndex == 0)
    {
        Response.Redirect("UsageHistoryPage.aspx? EntityID=" 
            + row.Cells[0].Text);
    }            
}

如您所见,当我点击索引时,我会转到“UsageHistoryPage”。我还添加了row.cells。[0]获取该数据并将其写入UsageHistoryPage,在我的例子中,它将是页面顶部的客户名称。有人可以帮我这个吗?有没有人有一个很好的教程链接?谢谢。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用此代码 - 在UsageHistoryPage

上添加此代码
var input =  Response.QueryString["EntityId"];
var connectionString = "...";

var queryString = "SELECT Name FROM TABLE WHERE COLUMN=@EntityId";
using (SqlConnection connection = new SqlConnection(
               connectionString))
{
    connection.Open();    
    using(var command = new SqlCommand(queryString, connection))
    {
        Command.Parameters.AddWithValue("@EntityId",input) 
        SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
        while (reader.Read())
        {
            Response.Write(String.Format("For Rick Your Name is here{0}", reader[0]));
        }
    }
}

答案 1 :(得分:1)

@Rick你可能想看一下如何检查一行是否被选中,例如你不需要for循环但在我的例子中需要检查RowIndex是否= 1或者> 0不= = 0

private void myButton_Click(object sender, EventArgs e)
{
    foreach (DataGridViewRow row in usersGrid.Rows)
    {
        if (this.usersGrid.SelectedRows.Count == 1)
        {
         // get information of 1st column from the row
         string selectedUser = this.usersGrid.SelectedRows[0].Cells[0].ToString();
        }
    }
}

您需要做的就是确保选择了行

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
   DataGridViewRow row = GridView1.SelectedRow;

    if (this.row.SelectedRows.Count == 1)
    {
        Response.Redirect("UsageHistoryPage.aspx?EntityID=" + row.SelectedRows[0].Cells[0].ToString());
    }
}

如果您希望显示客户名称,请在UsageHistorPage.aspx的Page Load上添加此代码

String strCustName = Request.QueryString["EntityID1"];
this.Page.Title = strCustName; 
尝试这样的事情......如果有任何想法适合你,请告诉别人。