我正在尝试从数据库中检索信息。用户输入他正在寻找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 for button:
<asp:Button ID="btnDisplay" runat="server" Text="Display" OnClick="btnDisplay_Click" />
答案 0 :(得分:0)
在代码隐藏中尝试使用以下代码。它应该正确绑定并填充gridview。如果有效,请从那里添加更多代码。如果它不起作用,请查看连接字符串之类的内容。让我知道。
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();
答案 1 :(得分:0)
您是否尝试在按钮单击中设置断点。它是否打破了断点。如果没有,那么我会说删除
OnClick="btnDisplay_Click"
从您的aspx页面。然后通过选择控件及其事件从.cs页面添加默认点击事件。他们尝试逐行调试。
答案 2 :(得分:0)
我认为你让自己太复杂了 首先这样做:
这应该让它发挥作用。您已经有了一个存储过程,使其更容易。 (对不起,图片,我想确保你明白这一点)