Click here to Skip to main content
15,892,005 members

Updating dataset to database problem

arcimonti asked:

Open original thread
Hi,

I have a problem updating a dataset / database.
There is a table "TblPerson" with the name and the "Age". The form consids a datagridview of "TblPerson", a combobox for "IDPerson", a textbox for "Age" and buttons for loading the database, updating the dataset and saving to the Database.

Loading the data to the datagridview and the comboboxes works fine. When I do changes in the "Age" textfield and press the update button, the datagridview shows the changes.
But when I want so save this to the database, there is no data registered to be updated.
But after doing the changes direkt in the datagridview, saving to the DB works fine.

I wonder about this, because the dataset always shows the correct updated data. Maybe the comboboxes and textfields do not registrate the change in the dataset.

Can somebody help me?

Thanks and best regards!



C#
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Test3_Join
{
    public partial class Form1 : Form
    {
        private DataSet ds = new DataSet();
        private DataViewManager dsView;
        OleDbDataAdapter AdapterTblPerson;
        OleDbConnection con;
        OleDbCommand cmd = new OleDbCommand();

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            string connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\...\\Database.accdb;Persist Security Info=False;";
            con = new OleDbConnection(connetionString);
            ds.Locale = System.Globalization.CultureInfo.InvariantCulture;
            cmd.Connection = con;

            cmd.CommandText = "SELECT * FROM TblPerson";
            AdapterTblPerson = new OleDbDataAdapter(cmd);
            AdapterTblPerson.Fill(ds, "TblPerson");

            dsView = ds.DefaultViewManager;

            cboIDConnector.DataSource = dsView;
            cboIDConnector.DisplayMember = "TblPerson.IDPerson";
            cboIDConnector.ValueMember = "TblPerson.IDPerson";

            tbPinAmount.DataBindings.Add("Text", dsView, "TblPerson.Age");
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            OleDbCommandBuilder cb = new OleDbCommandBuilder(AdapterTblPerson);
            int count = AdapterTblPerson.Update(ds.Tables["TblPerson"]);
            textBox1.Text = count.ToString();
            textBox1.AppendText("\r" + cb.GetUpdateCommand().ToString());
        }

        private void btnLoadTable_Click(object sender, EventArgs e)
        {
            dataGridView1.Refresh();
            dataGridView1.DataSource = ds;
            dataGridView1.DataMember = "TblPerson";
        }

    }
}
Tags: C#, Database Development, Dataset

Plain Text
ASM
ASP
ASP.NET
BASIC
BAT
C#
C++
COBOL
CoffeeScript
CSS
Dart
dbase
F#
FORTRAN
HTML
Java
Javascript
Kotlin
Lua
MIDL
MSIL
ObjectiveC
Pascal
PERL
PHP
PowerShell
Python
Razor
Ruby
Scala
Shell
SLN
SQL
Swift
T4
Terminal
TypeScript
VB
VBScript
XML
YAML

Preview



When answering a question please:
  1. Read the question carefully.
  2. Understand that English isn't everyone's first language so be lenient of bad spelling and grammar.
  3. If a question is poorly phrased then either ask for clarification, ignore it, or edit the question and fix the problem. Insults are not welcome.
  4. Don't tell someone to read the manual. Chances are they have and don't get it. Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.
Please note that all posts will be submitted under the http://www.codeproject.com/info/cpol10.aspx.



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900