2017-05-10 9 views
0

ページロード時にストアドプロシージャのパラメータを渡す方法はありますか。それは過負荷である必要があります。ページロード時にストアドプロシージャのパラメータを渡す方法

protected void bind(DateTime dt) 
{ 
    SqlConnection cn = new SqlConnection(conString); 
    SqlCommand cmd = new SqlCommand(); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandText = "HeadCount03"; 
    cmd.Parameters.AddWithValue("@years", ddlyear.SelectedValue); 
    cmd.Parameters.AddWithValue("@months", ddlMonths.SelectedValue); 
    cmd.Parameters.AddWithValue("@Cal", Convert.ToInt32(dt)); 
    cmd.Connection = cn; 
    try 
    { 
     cn.Open(); 
     GridView2.EmptyDataText = "No Records Found"; 
     GridView2.DataSource = cmd.ExecuteReader(); 
     GridView2.DataBind(); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
    finally 
    { 
     cn.Close(); 
     cn.Dispose(); 
    } 
    if (!IsPostBack) 
    { 
     bind(); 
    } 
} 

protected void btnGenerate_Click(object sender, EventArgs e) 
{  
    DateTime Cal = new DateTime(
     Convert.ToInt32(ddlyear.SelectedValue), 
     Convert.ToInt32(ddlMonths.SelectedValue), 
     1); 

    bind(Cal); 
} 

答えて

0

あなたがつもりですあなたがこの質問でメンターかを把握しようとしているイム、私はそれを参照してください方法はForm_loadイベントを必要としています。

private void Form_Load(object sender, EventArgs e) 
{ 
    bind(DateTime.Now()); 
} 

実際にはさらに情報を追加する必要があります。たとえば、この行は何を意味しますか?イベントにパラメータを追加する

cmd.CommandText = "HeadCount03"; 

EDIT

はそうのように行うことができます。

private void Form_Load(object sender, EventArgs e, string parameter) 
{ 
    //whatever 
} 

は、ラムダ式を使用して、このようにそれを呼び出します。

(sender, e) => Form_Load(sender, e, parameter); 
関連する問題