-1

我目前正在开发我的第一个网站。我遇到的问题如下:我创建了一个标题为“CustomerList”的分页,它显然列出了来自 sql server DB 的客户。我已使记录可单击,而无需使用 GridView 中包含的选择按钮。当我单击一条记录时,它会将我带到我想要的页面。但是,我似乎找不到从该点击事件到我想要的页面编写 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,在我的例子中,这将是页面顶部的客户名称。有人可以帮我吗?谁有好的教程链接?谢谢。

4

2 回答 2

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]));
        }
    }
}
于 2012-09-17T20:20:52.733 回答
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 的页面加载中添加此代码

String strCustName = Request.QueryString["EntityID1"];
this.Page.Title = strCustName; 

尝试类似的事情..如果有任何想法对您有用,请让这里的人知道。

于 2012-09-17T20:32:02.797 回答