2016-07-03 5 views
0

を返し実行し、私は、ストアドプロシージャユーザーコントロールは、SQL Serverのストアドプロシージャは、DataTableのイベントハンドラエラー

public DataTable btnFind_Click(object sender, EventArgs e) 
{ 
     UtilitiesClass ru = new UtilitiesClass(); 
     string connectionString = ru.getConnectionString(); 

     DataTable dt = new DataTable(); 

     SqlConnection myConnection = new SqlConnection(connectionString); 

     try 
     { 
      myConnection.Open(); 

      SqlCommand cmd = new SqlCommand("FindCust", myConnection); 
      cmd.Parameters.AddWithValue("@cust", txtCust.Text.Trim()); 
      cmd.CommandType = CommandType.StoredProcedure; 

      SqlDataAdapter ta = new SqlDataAdapter(cmd); 
      ta.Fill(dt); 

      myConnection.Close(); 
     } 
     catch (Exception x) 
     { 
      MessageBox.Show(e.ToString()); 
     } 

     return (dt); 
} 

を実行します。このユーザーコントロールを持っている私はこのVS上のエラーを取得するコードを生成:

this.btnFind.Click += new System.EventHandler(this.btnFind_Click); 

占いを私

'DataTable FindCustControl.btnFind_Click(object、EventArgs)'の戻り値の型が正しくありません。

私はどこから始めるべきかわかりません。私は問題を理解していない。

答えて

1

ボタンクリックを処理するイベントからデータテーブルを返すことはできません。

UPDATEがユーザーコントロールが存在するメインフォームにユーザーコントロールからデータテーブルを返すには、ユーザーコントロールのカスタムイベントを実装する必要があります。あなたの助けのための

http://www.windowsdevcenter.com/pub/a/dotnet/2002/04/15/events.html

//Generated code 
 
this.btnFind.Click += new System.EventHandler(this.btnFind_Click); 
 

 
//Button click handler 
 
public void btnFind_Click(object sender, EventArgs e) 
 
{ 
 
    var resultset = GetData(); 
 
    
 
    //Do whatever with data here 
 
    //... 
 
} 
 

 
//Query database 
 
public DataTable GetData() 
 
{ 
 
    UtilitiesClass ru = new UtilitiesClass(); 
 
    string connectionString = ru.getConnectionString(); 
 

 
    DataTable dt = new DataTable(); 
 

 
    SqlConnection myConnection = new SqlConnection(connectionString); 
 
    try 
 
    { 
 
    myConnection.Open(); 
 

 
    SqlCommand cmd = new SqlCommand("FindCust", myConnection); 
 
    cmd.Parameters.AddWithValue("@cust", txtCust.Text.Trim()); 
 
    cmd.CommandType = CommandType.StoredProcedure; 
 
    SqlDataAdapter ta = new SqlDataAdapter(cmd); 
 
    ta.Fill(dt); 
 
    myConnection.Close(); 
 

 
    } 
 
    catch (Exception x) 
 
    { 
 
    MessageBox.Show(e.ToString()); 
 
    } 
 
    return (dt); 
 
}

+0

本当にありがとうございました:ここに素晴らしい記事があります。実際にはユーザーコントロールを作成していて、データテーブルを返す必要があります。クリックイベントでそれができない場合は、どうすればいいですか?クリックイベント内でvar(resultset = GetData())を返すことはできますか? – Missy

+0

更新を確認してください。私はこれが助けることを願っています –

+0

ありがとう。私はそれを読むでしょう。 – Missy

関連する問題