0

我正在尝试从数据库中检索信息。用户在 ID 文本框中输入他正在寻找的人的 ID,然后按显示按钮。网格视图应显示结果。但是当按下按钮时,什么也没有发生。谁能帮助或告诉我应该检查什么?按钮代码:

protected void btnDisplay_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("Data Source="Name";Initial Catalog="Name";Integrated Security=True");
            SqlCommand cmd = new SqlCommand("displayData", conn);
            conn.Open();
            cmd.Parameters.Add("@ID", System.Data.SqlDbType.Int).Value = Convert.ToInt32(txtID.Text);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataReader rd = cmd.ExecuteReader();
            grvResults.DataSource = rd;
            grvResults.DataBind();
        }

这是存储过程:

USE ["Name"]
GO  
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[displayData] (@ID int)
as
begin
SELECT * FROM Customers WHERE ID = @ID
end

这是显示数据方法:

public List<Customer> displayData()
        {
            List<Customer> lst = new List<Customer>();
            SqlConnection conn = new SqlConnection("Data Source="Name";Initial Catalog="Name";Integrated Security=True");
            SqlCommand cmd = new SqlCommand("Select * From Customers", conn);
            conn.Open();
            SqlDataReader rd = cmd.ExecuteReader();
            while (rd.Read())
            {
                lst.Add(new Customer()
                {
                    ID = rd.GetInt32(0),
                    FName = rd.GetString(1),
                    LName = rd.GetString(2)

                });
            }
            return lst;
        }

aspx 按钮:

<asp:Button ID="btnDisplay" runat="server" Text="Display" OnClick="btnDisplay_Click" />
4

3 回答 3

0

在您的代码隐藏中尝试以下代码。它应该正确绑定并填充网格视图。如果可行,请从那里添加更多代码。如果它不起作用,请查看连接字符串之类的内容。让我知道。

        SqlConnection conn = new SqlConnection("Data Source="?";Initial Catalog="?";Integrated Security=True");

        SqlCommand cmd = new SqlCommand("SELECT * FROM Customers WHERE ID = @ID", conn);
        cmd.Parameters.Add("@ID", System.Data.SqlDbType.Int).Value = Convert.ToInt32(txtID.Text);

        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = cmd;

        DataTable dt = new DataTable();

            conn.Open();
            da.Fill(dt);
            conn.Close();

        grvResults.DataSource = dt;
        grvResults.DataBind();
于 2013-09-21T04:26:08.663 回答
0

您是否尝试在按钮单击中放置断点。是否达到断点。如果没有,那么我会说删除

OnClick="btnDisplay_Click" 

从您的 aspx 页面。然后通过选择控件及其事件从 .cs 页面添加默认单击事件。他们尝试逐行调试。

于 2013-09-21T06:09:30.147 回答
0

我认为你让自己太复杂了首先这样做: 选择第一个选项:SQL 语句或存储过程 然后选择你的存储过程 选择源控件(您的文本框),然后单击下一步

然后输入您的客户 ID 并单击按钮。 注意单击按钮时您需要这样写:**SqlDataSource1.DataBind();**

那应该使它起作用。您已经有一个存储过程,这使它更容易。(对不起图片,我想确保你理解这一点)

于 2013-09-21T06:38:13.613 回答