2017-06-13 58 views
0

我想在保存新記錄後在dataGridView中顯示數據庫中的數據。點擊按鈕後,數據保存,但不顯示在datagridview中。我如何顯示這些數據?在添加新記錄後在datagrid中顯示數據

private void btn_add_Click(object sender, EventArgs e) 
    { 

     { 

      if (textBox_tarikh.Text == "" || textBox_resit.Text == "" || textBox_bayaran.Text == "") 
      { 
       MessageBox.Show("Please Fill In The Blank"); 

      } 
      else 
      { 

        String bResult = textBox_ic.Text; 
        string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\acap\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30"; // add your conncetion string here 
        SqlConnection connection = new SqlConnection(connectionString); 
        SqlCommand cmd = new SqlCommand("INSERT Pembayaran (Description, Date, No_Resit, Payment, Studentic) VALUES (@Description, @date, @resit, @payment, @val)", connection); 
        cmd.Parameters.AddWithValue("@val", bResult); 
        cmd.Parameters.AddWithValue("@Description", label4.Text); 
        cmd.Parameters.AddWithValue("@date", Convert.ToDateTime(textBox_tarikh.Text)); 
        cmd.Parameters.AddWithValue("@resit", textBox_resit.Text); 
        cmd.Parameters.AddWithValue("@payment", textBox_bayaran.Text); 
        SqlDataAdapter dataadapter = new SqlDataAdapter(cmd); 
        DataSet ds = new DataSet(); 
        connection.Open(); 
        dataadapter.Fill(ds, "pembayaran_table"); 
        connection.Close(); 
        dataGridView3.DataSource = ds; 
        dataGridView3.DataMember = "pembayaran_table"; 

        cmd.Connection.Open(); 
        try 
        { 
         cmd.ExecuteNonQuery(); 
         MessageBox.Show("Data saved Successfully"); 
       } 
        catch (Exception ex) 
        { 
         //throw new Exception("Error " + ex.Message); 
         MessageBox.Show("Receipt No. is already use"); 
        } 

      } 
+0

哪裏是結合電網的代碼?把它作爲一個方法,在'cmd.ExecuteNonQuery();' –

回答

0

你可以試試:

private void btn_add_Click(object sender, EventArgs e) 
{ 
    string bResult = textBox_ic.Text; 
    if (textBox_tarikh.Text == "" || textBox_resit.Text == ""||textBox_bayaran.Text == "") 
     { 
      MessageBox.Show("Please Fill In The Blank"); 
     } 
    string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\acap\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30"; 
    SqlConnection connection = new SqlConnection(connectionString); 
    SqlCommand cmd ; 
    try 
    { 
     if(connection.State == ConnectionState.Closed) connection.Open(); 
     cmd = new SqlCommand("INSERT Pembayaran (Description, Date, No_Resit, Payment, Studentic) VALUES (@Description, @date, @resit, @payment, @val)", connection); 
     cmd.Parameters.AddWithValue("@val", bResult); 
     cmd.Parameters.AddWithValue("@Description", label4.Text); 
     cmd.Parameters.AddWithValue("@date", Convert.ToDateTime(textBox_tarikh.Text)); 
     cmd.Parameters.AddWithValue("@resit", textBox_resit.Text); 
     cmd.Parameters.AddWithValue("@payment", textBox_bayaran.Text); 
     cmd.Executenonquery(); 

     SqlDataAdapter da = new SqlDataAdapter("Select * from Pembayaran",connection); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     dataGridView3.DataSource = dt; 
    } 
    catch(Exception ex) 
    { 
    } 
    finally 
    { 
     if(connection.State == ConnectionState.Open) connection.Close(); 
    } 
} 
+0

好的謝謝@DuchAnhNguyen。該代碼是工作。 –

0

首先,我沒有看到任何數據在你的片段綁定代碼如DataGridView.DataSource = " "DataGridView.DataBind();

什麼,你可以嘗試插入數據後做了,利用@@IDENTITY檢索的ID你插入了什麼。然後利用檢索到的ID來捕捉新記錄。

@@IDENTITY

我已經在你的代碼段注意到,您使用的是相同的查詢。

SqlDataAdapter dataadapter = new SqlDataAdapter(cmd); 

你應該寫另一個SqlStatementSqlDataAdapter

叫它例如:

// Assumes that connection is a valid SqlConnection object. 
string queryString = 
    "SELECT CustomerID, CompanyName FROM dbo.Customers"; 
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection); 

DataSet customers = new DataSet(); 
adapter.Fill(customers, "Customers"); 

Populating a DataSet from a DataAdapter

+0

之前調用它們之前,我使用上面的代碼只是我編輯,但給錯誤說:「無法創建字段pembayaran_table子列表。 –

+0

@ashrafibrahim檢查我的更新回答 – Alvin

0

你只需要插入記錄到數據庫後更新您的DataGridView的數據源。

+0

你可以寫代碼@Vicky S。 –

+0

@DucAnhNguyen答案將工作,你可以請嘗試 –

相關問題