2016-03-08 3 views
2

Я хочу, чтобы обновить представление таблицы данных, но он не работает у меня есть метод Refresh так:освежающий вид сетки данных не работает

public void Select() 
{ 
    SqlConnection con = new SqlConnection(); 
    SqlCommand cmd = new SqlCommand(); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    DataTable dt = new DataTable(); 
    string cs = "server=(local);database=DB_Taxi;trusted_connection=yes;"; 
    con.ConnectionString = cs; 
    con.Open(); 
    cmd.Connection = con; 
    da.SelectCommand = cmd; 
    cmd.CommandText = "SELECT * FROM Tbl_Driver"; 
    da.Fill(dt); 
    con.Close(); 
    grid.DataSource = dt; 
} 

и находится на главной форме. Я хочу вызвать эту функцию в другой форме с именем Add_Driver. для этого я говорю это так в кнопке отправки, потому что получаю одинаковые значения текстового поля и после отправки им хочу показать их в виде сетки данных из базы данных. Я называю это так:

private void btnOK_Click(object sender, EventArgs e) 
    { 
     if (txtID.Text != "" || txtName.Text != "" || txtLastName.Text != "" || txtMobile.Text != "" || 
      txtPhone.Text != "" || txtCar.Text != "" || txtGender.Text != "" || txtAddress.Text != "") 
     { 
      SqlConnection con = new SqlConnection(); 
      SqlCommand cmd = new SqlCommand(); 
      string cs = "server=(local);database=DB_Taxi;trusted_connection=yes;"; 
      con.ConnectionString = cs; 
      con.Open(); 
      cmd.Connection = con; 
      cmd.CommandText = "INSERT INTO Tbl_Driver(DriverID,DName,DLastName,DMobile,DAddress,DCar,DGender,DPhone) VALUES(@ID,@Name,@LastName,@Mobile,@Address,@Car,@Gender,@Phone)"; 
      cmd.Parameters.AddWithValue("@ID", txtID.Text); 
      cmd.Parameters.AddWithValue("@Name", txtName.Text); 
      cmd.Parameters.AddWithValue("@LastName", txtLastName.Text); 
      cmd.Parameters.AddWithValue("@Mobile", txtMobile.Text); 
      cmd.Parameters.AddWithValue("@Address", txtAddress.Text); 
      cmd.Parameters.AddWithValue("@Car", txtCar.Text); 
      cmd.Parameters.AddWithValue("@Gender", txtGender.Text); 
      cmd.Parameters.AddWithValue("@Phone", txtPhone.Text); 
      cmd.ExecuteNonQuery(); 
      con.Close(); 
      Empty(); 
      //////////////////// 
      Main m = new Main(); 
      m.Select(); 
      //////////////////// 
      MessageBox.Show("Added"); 
     } 
     else 
     { 
      MessageBox.Show("Plese complete the form");     
     }    
    } 

, но данные по мнению данных сетки не меняется. , пожалуйста, помогите! но когда я называю этот метод на главной форме она работает , но я пишу, как это для основного метода:

Select() 
+1

Вы отлаживали свой код и видели, что происходит? –

+0

Используйте шаблон MVVM, он работает лучше. – VVN

+0

Да, я его отлаживаю. Но ничего необычного. –

ответ

1

Попробуйте это.

public void Select() { 
    SqlConnection con = new SqlConnection(); 
    SqlCommand cmd = new SqlCommand(); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    DataTable dt = new DataTable(); 
    string cs = "server=(local);database=DB_Taxi;trusted_connection=yes;"; 
    con.ConnectionString = cs; 
    con.Open(); 
    cmd.Connection = con; 
    da.SelectCommand = cmd; 
    cmd.CommandText = "SELECT * FROM Tbl_Driver"; 
    da.Fill(dt); 
    con.Close(); 

    //clearing the datasource 
    grid.DataSource = null; 

    //set the datasource 
    grid.DataSource = dt; 
} 
Смежные вопросы