我在aspx页面中有一个文本框和一个按钮。 我还有一个gridview,它应该根据存储过程列出结果。
这是我的C#代码示例
private void GetList(string EmployeeName)
String strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "GetEmployeeDetailsByName";
cmd.Parameters.Add("@EmployeeName", SqlDbType.Text).Value = txtName.Text.Trim();
cmd.Connection = con;
try
{
con.Open();
GridView1.EmptyDataText = "No Records Found";
GridView1.DataSource = cmd.ExecuteReader();
GridView1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con.Dispose();
}
现在我在button_click事件中添加了以下内容
GetList();
它给了我“方法没有重载......”错误。
如何确保搜索文本框中的任何用户类型都会传入.cs文件中的GetList(**HERE**)
?
答案 0 :(得分:3)
你没有GetList
的重载没有参数,所以这不会编译:
GetList();
我会将参数的类型更改为int
,因为这是必需的类型:
private void GetList(int EmployeeID)
然后传递已解析的TextBox.Text
(在您已经对其进行了解析后可以解析):
int EmployeeID = int.Parse(txtID.Text.Trim());
GetList(EmployeeID);
并更改此行:
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = txtID.Text.Trim();
到
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = EmployeeID;
答案 1 :(得分:2)
Button.Click事件是System.EventHandler事件委托类型。
您的方法GetList()必须接受2个参数:
GetList(对象发件人,EventArgs e)
希望这有帮助!
答案 2 :(得分:0)
我使用了一种不同的方法(通过创建数据表和绑定到适配器..)来实现这一点。感谢您帮我解决问题。