2017-01-01 16 views
1

これはデータグリッドビューのフォームです。メンバーの追加ボタンをクリックすると2番目のフォームが表示されます。別のフォームに詳細を挿入した後にDataGridViewが更新されない[C#]

private void btnAddMember_Click(object sender, EventArgs e) 
    { 
     Cashier_NewMember F_Cashier_NewMember = new Cashier_NewMember(); 

     F_Cashier_NewMember.Show(); 
    } 

これは、メンバーの詳細を挿入するフォームです。

private void btnAddMember_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      if (sqlCon.State == ConnectionState.Closed) 
       sqlCon.Open(); 

      if (btnAddMember.Text == "Add Member") 
      { 

       if (string.IsNullOrWhiteSpace(txtFirstName.Text) || string.IsNullOrWhiteSpace(txtLastName.Text) || string.IsNullOrWhiteSpace(txtMobileNo.Text) || string.IsNullOrWhiteSpace(txtHomeNo.Text) || string.IsNullOrWhiteSpace(txtAddress.Text) || string.IsNullOrWhiteSpace(txtPostcode.Text) || string.IsNullOrWhiteSpace(txtCity.Text) || string.IsNullOrWhiteSpace(txtCountry.Text)) 
        MessageBox.Show("All fields are required!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); 

       else if (string.IsNullOrWhiteSpace(txtMemberID.Text)) 
        MessageBox.Show("Please generate a Member ID!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); 

       else 
       { 
        SqlCommand sqlCmd = new SqlCommand("AddOrUpdateMembership", sqlCon); 
        sqlCmd.CommandType = CommandType.StoredProcedure; 
        sqlCmd.Parameters.AddWithValue("@mode", "Add"); 
        sqlCmd.Parameters.AddWithValue("@Member_ID", txtMemberID.Text); 
        sqlCmd.Parameters.AddWithValue("@Member_Since_Date", dtpMemberSince.Value.Date); 
        sqlCmd.Parameters.AddWithValue("@Title", cmbTitle.GetItemText(cmbTitle.SelectedItem)); 
        sqlCmd.Parameters.AddWithValue("@First_Name", txtFirstName.Text.Trim()); 
        sqlCmd.Parameters.AddWithValue("@Last_Name", txtLastName.Text.Trim()); 
        sqlCmd.Parameters.AddWithValue("@DOB", dtpDOB.Value.Date); 
        sqlCmd.Parameters.AddWithValue("@Gender", cmbGender.GetItemText(cmbGender.SelectedItem)); 
        sqlCmd.Parameters.AddWithValue("@Mobile_No", cmbMobileNo.GetItemText(cmbMobileNo.SelectedItem) + txtMobileNo.Text.Trim()); 
        sqlCmd.Parameters.AddWithValue("@Home_No", cmbHomeNo.GetItemText(cmbHomeNo.SelectedItem) + txtHomeNo.Text.Trim()); 
        sqlCmd.Parameters.AddWithValue("@House_Address", txtAddress.Text.Trim()); 
        sqlCmd.Parameters.AddWithValue("@Post_Code", txtPostcode.Text.Trim()); 
        sqlCmd.Parameters.AddWithValue("@City", txtCity.Text.Trim()); 
        sqlCmd.Parameters.AddWithValue("@City_State", txtState.Text.Trim()); 
        sqlCmd.Parameters.AddWithValue("@Country", txtCountry.Text.Trim()); 

        sqlCmd.ExecuteNonQuery(); 
    } 

これは、私はこれは私がデータグリッドビューを検索し、充填するために使用されるストアドプロシージャのコードであるデータgirdビューを埋めるために

public void FillDataGridView() 
    { 
     Cashier_NewMember F_Cashier_NewMember = new Cashier_NewMember(); 

     if (sqlCon.State == ConnectionState.Closed) 
      sqlCon.Open(); 

     SqlDataAdapter sqlDa = new SqlDataAdapter("ViewOrSearchMembership", sqlCon); 
     sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure; 
     sqlDa.SelectCommand.Parameters.AddWithValue("@Member_ID", F_Cashier_NewMember.txtMemberID.Text); 
     DataTable dtbl = new DataTable(); 
     sqlDa.Fill(dtbl); 
     dgvMembershipDetails.DataSource = dtbl; 

     sqlCon.Close(); 
    } 

を使用するコードです。

CREATE PROCEDURE [dbo].[ViewOrSearchMembership] 
    @Member_ID VARCHAR(10) 
AS 
    SELECT * 
    FROM Member 
    WHERE Member_ID LIKE @Member_ID + '%' 

私はどこにでも)FillDataGridViewを(追加しようとしたが、データグリッドビューはまだ更新されていません。

+0

どのように/どこでデータテーブルの後に補充されています追加または更新します。あなたが手動でやっているので、最初にテーブル – Plutonix

+0

を保持していなかったので、自動的にDGVに表示されませんでした:データが "メンバー"に挿入されていることを確認してくださいテーブルチェックの覚え書きテーブルデータが挿入されたかどうかを教えてください –

+0

@Plutonix erm、Addボタンをクリックした後に両方のフォームを補充しようとしました –

答えて

2

それを埋める前に、明確なのDataGridViewにしようとし、その後、公開したことを確認してください)

1

dgvMembershipDetails.Databind()は、データソース行を割り当てた後に配置する必要があります。

+0

'DataGridView'にはそのようなメソッドがありません – Plutonix

1

あなたdgvMembershipDetails修飾子はdgvMembershipDetails.update(この後に割り当てられたデータソースを試してみてください

public void FillDataGridView(){ 
    Cashier_NewMember F_Cashier_NewMember = new Cashier_NewMember(); 

    if (sqlCon.State == ConnectionState.Closed) 
     sqlCon.Open(); 

    SqlDataAdapter sqlDa = new SqlDataAdapter("ViewOrSearchMembership", sqlCon); 
    sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure; 
    sqlDa.SelectCommand.Parameters.AddWithValue("@Member_ID", F_Cashier_NewMember.txtMemberID.Text); 
    DataTable dtbl = new DataTable(); 
    sqlDa.Fill(dtbl); 
    dgvMembershipDetails.DataSource =null; 
    dgvMembershipDetails.DataSource = dtbl; 

    sqlCon.Close(); 
} 
関連する問題