2013-02-26 6 views
3

на моем проекте asp.net, как я могу обновить gridview сразу после нажатия на кнопку. У моей кнопки есть коды обновлений. Здесь есть коды;Обновление Gridview после кнопки Нажмите

protected void Button3_Click(object sender, EventArgs e) 
    { 
     string strSQL = "UPDATE [bilgiler3] SET [HAM_FM] = ISNULL(MON,0)+ISNULL(TUE,0)+ISNULL(WED,0)+ISNULL(THU,0)+ISNULL(FRI,0)+ISNULL(SAT,0)+ISNULL(SUN,0) WHERE [DATE] BETWEEN @DATE1 AND @DATE2 AND WORK_TYPE='OUT'"; 
     string connStr = WebConfigurationManager.ConnectionStrings["asgdb01ConnectionString"].ConnectionString; 
     using (SqlConnection conn = new SqlConnection(connStr)) 
     { 
      using (SqlCommand comm = new SqlCommand()) 
      { 
       comm.Connection = conn; 
       comm.CommandText = strSQL; 
       comm.CommandType = CommandType.Text; 

       comm.Parameters.AddWithValue("@DATE1", Convert.ToDateTime(TextBox1.Text)); 
       comm.Parameters.AddWithValue("@DATE2", Convert.ToDateTime(TextBox2.Text)); 
       try 
       { 
        conn.Open(); 
        int i = comm.ExecuteNonQuery(); 
        conn.Close(); 
        if (i > 0) 
        { 
         Response.Write(" SUCCESS "); 
        } 
        else 
        { 
         Response.Write(" ERROR ! "); 
        } 
       } 
       catch (SqlException ex) 
       { 
        Response.Write(ex.ToString()); 
       } 
      } 
     } 
    } 

Вы можете сказать «вам нужно привязать данные вашего gridview», но я не мог понять метод. Можете ли вы мне помочь?

большое спасибо.

+0

Да, Вы можете использовать DataBind, потому что его легче всего я думаю – Pyromancer

ответ

0
private SqlConnection con; 
private SqlConnectionStringBuilder str; 

private void Form8_Load(object sender, EventArgs e) 
     { 
      loadData(); 
     } 

     private void loadData() 
     { 
      str = new SqlConnectionStringBuilder(); 
      str.Provider = ""; 
      str.DataSource = @"source.accdb"; 
      con = new SqlConnection(str.ConnectionString); 
      dataGridView1.DataSource = fillTable("Select* from yourTable"); 
     } 

     private DataTable fillTable(string sql) 
     { 
      DataTable datatable = new DataTable(); 
      using (SqlDataAdapter da = new SqlDataAdapter(sql, con)) 
      { 
       da.Fill(datatable); 
      } 

      return datatable; 
     } 

затем Если вы хотите, чтобы обновить таблицу, заложенную в событии button_Click надежде, что это Ваша помощь loaddata();,

+0

после возвращения DataTable, я буду писать свои кнопки коды клик и идет дальше? –

+0

no вы должны поместить 'loadData();' в конце вашего 'button3_Click', если вы хотите автоматически обновлять свой' dataGridView' при обновлении. :) – Pyromancer

+0

Зачем использовать 'select * from theTable'. Это действительно плохо. –

2

Я бы сделать следующее:

DataSet ds = new DataSet(); 
SqlDataAdapter sda = new SqlDataAdapter(); 
SqlConnection sc = new SqlConnection("you connection string here Security=True"); 


private void loadData() 
     { 
      try 
      { 
       ds.Clear(); 
       SqlCommand sCmd= new SqlCommand("Load your database", sc); 
       sda.SelectCommand = sCmd; 
       sda.Fill(ds, "sCmd"); 

       datagrid.DataSource = ds.Tables["sCmd"]; 
      } 

      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); 
       Application.ExitThread(); 
      } 

     } 

что-то для C# начинающих Youtube

+1

Это проще для SQL :) спасибо за подсказку – Pyromancer

1

Добавить этот код на вашу кнопку, нажмите

SqlConnection con = new SqlConnection("Connection string from web config"); 
    DataSet ds = new DataSet(); 
    SqlDataAdapter sda = new SqlDataAdapter("select * from EmployeeTable", con); 
    con.Open(); 
    sda.Fill(ds ,"Data"); 
gridview1.datasource=ds.tables[0]; 
gridview1.DataBind(); 
0

DataBind ваш контроль над успехом.

if (i > 0) 
     { 
      yourGridView.DataSource=YourDataSource; 
      yourGridView.DataBind(); 
      Response.Write(" SUCCESS "); 
     } 
Смежные вопросы