gpt4 book ai didi

c# - 如何在datagridview插入后立即刷新或显示?

转载 作者:可可西里 更新时间:2023-11-01 07:54:28 27 4
gpt4 key购买 nike

在所有文本框中输入数据并点击提交按钮后,它不会立即显示在数据 GridView 中,我需要重新打开表单才能看到新插入的行。为刷新输入什么代码?

关注@user3222297 代码。通过添加 grdPatient.Update();和 grdPatient.Refresh();点击确定插入成功后仍然没有刷新。

doesn't get refresh

     using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;

namespace GRP_02_03_SACP
{
public partial class patient : Form
{
// Data Table to store employee data
DataTable Patient = new DataTable();

// Keeps track of which row in Gridview
// is selected
DataGridViewRow currentRow = null;

SqlDataAdapter PatientAdapter;

public patient()
{
InitializeComponent();
}

private void btnSubmit_Click(object sender, EventArgs e)
{
if (btnSubmit.Text == "Clear")
{
btnSubmit.Text = "Submit";

txtpFirstName.Focus();
}
else
{
btnSubmit.Text = "Clear";
int result = AddPatientRecord();
if (result > 0)
{
MessageBox.Show("Insert Successful");
grdPatient.Update();
grdPatient.Refresh();
}
else
MessageBox.Show("Insert Fail");

}
}
private int AddPatientRecord()
{
int result = 0;
// TO DO: Codes to insert customer record
//retrieve connection information info from App.config
string strConnectionString = ConfigurationManager.ConnectionStrings["sacpConnection"].ConnectionString;
//STEP 1: Create connection
SqlConnection myConnect = new SqlConnection(strConnectionString);
//STEP 2: Create command
String strCommandText = "INSERT PATIENT(pFirstName, pLastName, pContact, pAddress, pCity, pZip, pNationality, pRace, pIC, pGender, pDOB, pBloodType, pEmail) "
+ " VALUES (@pFirstName,@pLastName,@pContact,@pAddress,@pCity,@pZip,@pNationality, @pRace, @pIC, @pGender, @pDOB, @pBloodType, @pEmail)";

SqlCommand updateCmd = new SqlCommand(strCommandText, myConnect);

updateCmd.Parameters.AddWithValue("@pFirstName", txtpFirstName.Text);
updateCmd.Parameters.AddWithValue("@pLastName", txtpLastName.Text);
//updateCmd.Parameters["@clientid"].Direction = ParameterDirection.Output;
updateCmd.Parameters.AddWithValue("@pContact", txtpContact.Text);
updateCmd.Parameters.AddWithValue("@pAddress", txtpAddress.Text);
updateCmd.Parameters.AddWithValue("@pCity", txtpCity.Text);
updateCmd.Parameters.AddWithValue("@pZip", txtpZip.Text);
updateCmd.Parameters.AddWithValue("@pNationality", txtpNationality.Text);
updateCmd.Parameters.AddWithValue("@pRace", txtpRace.Text);
updateCmd.Parameters.AddWithValue("@pIC", txtpIC.Text);
updateCmd.Parameters.AddWithValue("@pGender", txtpGender.Text);
updateCmd.Parameters.AddWithValue("@pDOB", txtpDOB.Text);
updateCmd.Parameters.AddWithValue("@pBloodType", txtpBloodType.Text);
updateCmd.Parameters.AddWithValue("@pEmail", txtpEmail.Text);
// STEP 3 open connection and retrieve data by calling ExecuteReader
myConnect.Open();
// STEP 4: execute command
// indicates number of record updated.
result = updateCmd.ExecuteNonQuery();

// STEP 5: Close
myConnect.Close();
return result;

}

private void patient_Load(object sender, EventArgs e)
{
LoadPatientRecords();
}

private void LoadPatientRecords()
{

//retrieve connection information info from App.config
string strConnectionString = ConfigurationManager.ConnectionStrings["sacpConnection"].ConnectionString;
//STEP 1: Create connection
SqlConnection myConnect = new SqlConnection(strConnectionString);
//STEP 2: Create command
string strCommandText = "SELECT pFirstName, pLastName, pContact, pAddress, pCity, pZip, pNationality, pRace, pIC, pGender, pDOB, pBloodType, pEmail, pUsername, pPassword FROM Patient";

PatientAdapter = new SqlDataAdapter(strCommandText, myConnect);

//command builder generates Select, update, delete and insert SQL
// statements for MedicalCentreAdapter
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(PatientAdapter);
// Empty Employee Table first
Patient.Clear();
// Fill Employee Table with data retrieved by data adapter
// using SELECT statement
PatientAdapter.Fill(Patient);

// if there are records, bind to Grid view & display
if (Patient.Rows.Count > 0)
grdPatient.DataSource = Patient;
}
}
}

最佳答案

只需要像这样重新填充datagrid:

this.XXXTableAdapter.Fill(this.DataSet.XXX);

如果您使用从 dataGridView 自动连接,此代码会在 Form_Load() 中自动创建

关于c# - 如何在datagridview插入后立即刷新或显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21299016/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com