DataGridView - opdatering af database problemer
Efter længere tids surfen er det endelig lykkes at få et editable datagridview til at virke - næstenJeg 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);
}
}
}