2013-03-27 105 views
-2

我有2種形式和不知道如何更新datagridview的,如果一些可以簡單地指導我請。 form1如下:更新datagridview的

public partial class frmBooking : Form 
{ 
    //instance of sqlConnection created   
    SqlConnection con = new SqlConnection("Data Source=...."); 


    public frmBooking() 
    { 
     InitializeComponent(); 

     //sets the time selecter to a time format and selects the hours and mins only in 24 hour format. 
     TimeOfBooking.CustomFormat = "HH:mm"; 
     TimeOfBooking.Format = System.Windows.Forms.DateTimePickerFormat.Custom; 

     //combo box get data from database and updates when new customer is added 
     try 
     { 
      con.Open(); 
     } 
     catch (SqlException ex) 
     { 
      MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); 
      Application.Exit(); 
     } 

     NameOfCustomer.Items.Clear(); 

     SqlCommand cm = new SqlCommand("SELECT GroupName FROM Customer ORDER BY GroupName ASC", con); 

     try 
     { 
      SqlDataReader dr = cm.ExecuteReader(); 

      while (dr.Read()) 
      { 
       NameOfCustomer.Items.Add(dr["GroupName"]); 
      } 

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

     } 


     //ends here 
    } 

     //sets the facility name so its copied from the previous(facility to be booked) form into the Facility text box 
    public void setFacility(string new_facility) 
    { 
     Facility.Text = new_facility; 
    } 

    //sets the date so its copied from the previous(facility to be booked) form into the date text box 
    public void setDate(string new_date) 
    { 
     Date.Text = new_date; 
    } 


    //adding a new customer button, redirects user to the add customer page 
    private void btnAddCust_Click(object sender, EventArgs e) 
    { 
     frmNewCustomer newCust = new frmNewCustomer(); 
     newCust.Show(); 
     this.Close(); 
    } 

    //cancel button will redirect the user to the main page 
    private void btnCancel_Click(object sender, EventArgs e) 
    { 
     Form3 frm3 = new Form3(); 
     frm3.Show(); 
     this.Close(); 
    } 

    private void frmBooking_Load(object sender, EventArgs e) 
    { 
     // TODO: This line of code loads data into the 'usersDataSet.Customer' table. You can move, or remove it, as needed. 
     this.customerTableAdapter.Fill(this.usersDataSet.Customer); 
     // TODO: This line of code loads data into the 'usersDataSet.Customer' table. You can move, or remove it, as needed. 
     this.customerTableAdapter.Fill(this.usersDataSet.Customer); 
     // TODO: This line of code loads data into the 'usersDataSet.Customer' table. You can move, or remove it, as needed. 
     this.customerTableAdapter.Fill(this.usersDataSet.Customer); 

    } 

    private void lblBookingForm_Click(object sender, EventArgs e) 
    { 

    } 

    private void btnConfirm_Click(object sender, EventArgs e) 
    { 

     //validation - if any of the mandotory fields are empty an error message will apear next to the text box 
     if (Facility.Text == "") 
     { 
      //MessageBox.Show("Please enter valid Facility, Date, Name Of Customer, Time Of Booking and Hours"); 
      errorFacility.SetError(Facility, "Enter A Facility To Book"); 
     } 
     else if (Date.Text == "") 
     { 
      errorDate.SetError(Date, "Enter A Valid Date"); 
     } 
     else if (NameOfCustomer.Text == "") 
     { 
      errorCust.SetError(NameOfCustomer, "Enter A Customer To Book"); 
     } 
     else if (TimeOfBooking.Text == "") 
     { 
      errorTime.SetError(TimeOfBooking, "Enter A Time To Book"); 
     } 
     else if (Hours.Text == "") 
     { 
      errorHours.SetError(Hours, "Enter The Hours To Book"); 
     } 

     //so if there isnt no error in the fields itll go on and add the data in to the database. 
     else 
     { 

     //instance of sqlConnection    
     SqlConnection con = new SqlConnection("Data Source=..."); 

     //instance of sqlCommand 
     String query = 
      "INSERT INTO [Booking] values ('" 
      + Facility.Text 
      + "', '" + Date.Text 
      + "', '" + NameOfCustomer.Text 
      + "', '" + TimeOfBooking.Text 
      + "', '" + Hours.Text 
      + "', '" + Paid.Text 
      + "', '" + Notes.Text 
      + "')"; 

     SqlCommand cmd = new SqlCommand(query, con); 
     con.Open(); 
     cmd.ExecuteNonQuery(); 


     //query executed correcty or not 
     con.Close(); 

      MessageBox.Show("Sucessfully Booked"); 

      Form3 mainPage = new Form3(); 
      mainPage.Show(); 
      this.Close(); 
     } 
    } 
    }} 

這是我用來添加預訂的表單。 第二種形式我已經是一個與datagridview的,我想如下更新時,客人提出的代碼是:

 public partial class frmViewBookings : Form 
     { 
      public frmViewBookings() 
      { 
       InitializeComponent(); 
      } 

      private void btnClose_Click(object sender, EventArgs e) 
      { 
       Form3 mainpage = new Form3(); 
       mainpage.Show(); 
       this.Close(); 
      } 

      private void frmViewBookings_Load(object sender, EventArgs e) 
      { 
       // TODO: This line of code loads data into the 'usersDataSet1.Booking' table. You can move, or remove it, as needed. 
       this.bookingTableAdapter.Fill(this.usersDataSet1.Booking); 

      } 
     } 
    } 
+0

我再試一次。我們需要查看您創建的位置並顯示您的frmViewBookings表單。你能提供這些代碼嗎? – Rob 2013-03-27 17:48:49

+0

我已經分手了起來,上面是我的frmBooking形式和底部frmViewBooking形式......這是我迄今爲止 – bandaa 2013-03-27 17:50:39

+0

我明白,但你的地方有一行代碼類似於:frmViewBookings newFrmViewBookings =新frmViewBookings(); newFrmViewBookings.Show();你能告訴我們你在哪裏做的嗎? – Rob 2013-03-27 17:52:09

回答

0

要顯示在您的數據網格的數據,你就必須設置它的數據源首先它每當你想刷新它,你將不得不重新填寫您的TableAdapter和你的GridView的數據源設置它,你會做這樣的

datagridview1.Datasource = this.usersDataSet1.Booking.DefaultView

(創建一個單獨的方法來加載的DataGridView)