J'ai le code ci-dessous où je suis en train de mettre à jour une base de données de la C# vue sur la grille modification apportée à l'application windows ....SqlDataAdapter.Update (tableau de données) ne fonctionne pas (pas de mettre à jour la base de données)
Le code ne met pas à jour la base de données SQL Server. Je ne suis pas sûr d'où exactement le problème se produit. Ou y a-t-il un moyen de mettre à jour la table de base de données en utilisant "update query statement", le point est comment écrire l'instruction de mise à jour pour les changements de valeur dans la vue de grille de données?
Je suppose qu'il pourrait y avoir un problème avec la liaison et les instructions de commande de sélection ...
Quelqu'un pourrait-il me diriger dans la bonne direction pour résoudre ce problème?
public partial class KnowledgeBaseForm : Form
{
private SqlDataAdapter SDA = new SqlDataAdapter();
private DataTable DT = new DataTable();
private void button_retrievekb_Click(object sender, EventArgs e)
{
try
{
con.Open();
SqlDataAdapter SDA = new SqlDataAdapter(@"SELECT * From Table1", con);
SDA.Fill(DT);
bindingsource.DataSource = DT;
dataGridView.DataSource = bindingsource;
if (DT.Rows.Count > 0)
{
dataGridView.Columns[0].DefaultCellStyle.ForeColor = Color.Gray;
dataGridView.Columns[0].ReadOnly = true;
}
else
{
MessageBox.Show("No Knowledge Base Rules Found");
}
}
catch (Exception ex)
{
MessageBox.Show("Error : " + ex.Message);
}
finally
{
con.Close();
}
}
private void button_update_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Do you really want to Update these values?", "Confirm Update", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
//binding the datasource with the changes made in the gridview
bindingsource.DataSource = dataGridView.DataSource;
DT.AcceptChanges();
scb = new SqlCommandBuilder(SDA);
SDA.Update((DataTable) bindingsource.DataSource);
MessageBox.Show("Updates successfully submitted to CoSD");
}
}
}
Déclarez votre objet DT dans la racine de la classe comme votre DataAdapter, et utiliser DT.AcceptChanges avant d'appeler SDA.Update, testez-le et laissez-nous maintenant si cela fonctionne –
Salut. .. J'ai édité le code comme ce que vous avez dit ... mais ne fonctionnait toujours pas ... –