Avatar billede spiderdk Nybegynder
18. oktober 2008 - 10:06 Der er 1 løsning

DataGridView - opdatering af database problemer

Efter længere tids surfen er det endelig lykkes at få et editable datagridview til at virke - næsten

Jeg har lavet en form med et datagridview - myGrid, og binder sql op mod denne, når jeg indtaster en ny række eller opdater, skal jeg gå ned på den næste række, gå tilbage på 1. række, og ned på den nye række igen, så vil databasen blive opdateret.

Jeg kan ikke forstå denne logik.

Til formålet har jeg en tabel der ser sådan ud

tablename: Test3
Col1: a (Varchar)
Col2: b (Varchar)
Col3: c (int - seeding & PK)

Jeg vedhæfter koden nedenunder, håber der er en der kan hjælpe.

*********

using System;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;

namespace Test3
{
    public partial class Form1 : Form
    {
        String ConnectionString = "server=(local)\\SQLExpress;uid=test3;pwd=test3;database=testdb;";
        SqlDataAdapter adapter;
        SqlConnection conn = null;
        SqlCommand cmd = null;
        SqlCommandBuilder builder;
        DataTable myDataTable = new DataTable();
        private DataTable userTable = new DataTable();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "SpiderDK.DataGridView.Test";
            try
            {
                conn = new SqlConnection(ConnectionString);
                cmd = new SqlCommand("select * from test3", conn);
                adapter = new SqlDataAdapter(cmd);
                adapter.Fill(myDataTable);
                builder = new SqlCommandBuilder();
                builder.DataAdapter = adapter;
                adapter.InsertCommand = builder.GetInsertCommand(true);
                adapter.DeleteCommand = builder.GetDeleteCommand(true);
                adapter.UpdateCommand = builder.GetUpdateCommand(true);
                dataGridView1.DataSource = myDataTable;
                dataGridView1.DataMember = myDataTable.TableName;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Fejl...");
            }
            finally
            {
                conn.Close();
            }
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (conn.State != ConnectionState.Closed)
            {
                conn.Close();
            }
        }

        private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
        {
            adapter.Update(myDataTable);
        }
    }
}
Avatar billede spiderdk Nybegynder
22. oktober 2008 - 09:33 #1
Problemet blev løst ved at jeg lavede min egen insert functionalitet, og ikke bruger griddet til det!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester