2013-03-10 70 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

我用不同的方法(通過創建數據表,並綁定到適配器..)來得到這個工作。感謝您試圖幫助我解決問題。