2013-03-10 44 views
1

我在aspx页面和一个按钮中有一个文本框。 我也有一个gridview应该列出基于存储过程的结果。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

一个名为'GetList'的方法应该返回一些东西。你可以返回Grid的DataSource(即一个DataTable)。否则,我会命名它'DataBindGrid'。 – 2013-03-10 00:22:38

回答

2

Button.Click事件是一个System.EventHandler事件委托类型。

你的方法的GetList()必须接受2个参数:

的GetList(对象发件人,EventArgs的)

希望这有助于!

+0

我认为你误会了:_“现在我在button_click事件中添加了以下内容: GetList();”_我假设事件处理程序不是'GetList',但他在那里调用了该方法。 – 2013-03-10 00:20:37

+0

Ops..my坏..但是.. GetList()中的EmployeeID参数没有使用! – 2013-03-10 00:25:10

+0

我刚刚刷新页面,你的帖子意味着已经有这个东西@TimSchmelter – 2013-03-10 00:27:06

3

你有没有GetList不带参数的过载,所以这并不编译:

GetList(); 

我将参数的类型更改为int,因为这是所需类型:

private void GetList(int EmployeeID) 

然后通过解析TextBox.Text(你valiated后,它可以被解析):

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;   
+0

我得到“SqlParameterCollection只接受非null的SqlParameter类型对象,而不是String对象。”错误我正在使用字符串作为搜索文本格式(不是最初发布的int) – 007 2013-03-10 00:25:18

+1

@ user1569220:所以'EmployeeID'实际上是一个'varchar',为什么? – 2013-03-10 00:27:19

+0

该代码是我正在遵循的示例。我将要做的搜索是在数据库中的nvarchar字段上。所以即搜索文本可能是埃里克,我想运行一个存储过程,接受一个参数>单击时显示一些字段与埃里克相关联的字段。 – 007 2013-03-10 00:31:54

0

我用不同的方法(通过创建数据表,并绑定到适配器..)来得到这个工作。感谢您试图帮助我解决问题。