Frage für Sie:C# Aktualisierung der Datenbanktabelle mit Datagridview
ich Visual Studio 2015 bin mit einer Windows-Forms-Anwendung zu machen. Das Ziel besteht darin, eine einfache Tabelle in einer Netezza-Datenbank mit einem Data Grid Viewer-Steuerelement bearbeiten zu können.
Ich legte das Datenraster-Viewer-Steuerelement auf mein Formular, erstellte eine Datenquelle, die auf die Tabelle verweist, und zeigte dann die Datenrasteransicht auf diese Tabelle. Es funktioniert gut, wenn ich es ausführe und die 10 oder so Reihen von Daten tadellos anzeigt.
Gibt es eine einfache Möglichkeit, die Daten von der Datagridview zu aktualisieren? Ich sehe, es gibt Bearbeitungs/Sperr-Optionen, aber selbst mit allen von ihnen richtig eingestellt, wenn ich einen Wert in der Zelle des Rasters bearbeiten und drücken Sie die Eingabetaste, es geht nicht zurück und aktualisieren Sie die Datenbank. Muss ich das manuell codieren? Ich war mir nicht sicher, ob das Raster eine Möglichkeit hat, es automatisch zu machen. Im Code überprüfte ich alle Methoden für den Tableadapter und fand kein .Update oder ähnliches.
einige Ratschläge würden sehr geschätzt werden. Vielen Dank!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SBTForceClose
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void LoadGrid()
{
dataGridView1.DataSource = dataSet1.LKP_SBT_FORCE_CLOSE;
dataGridView1.Refresh();
}
private void button1_Click(object sender, EventArgs e)
{
LoadGrid();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'dataSet1.LKP_SBT_FORCE_CLOSE' table. You can move, or remove it, as needed.
this.lKP_SBT_FORCE_CLOSETableAdapter.Fill(this.dataSet1.LKP_SBT_FORCE_CLOSE);
}
private DataRow LastDataRow = null;
private void UpdateRowToDatabase()
{
if (LastDataRow != null)
{
if (LastDataRow.RowState == DataRowState.Modified)
{
this.lKP_SBT_FORCE_CLOSETableAdapter.Update(this.LastDataRow);
}
}
}
private void lKPSBTFORCECLOSEBindingSource_PositionChanged(object sender, EventArgs e)
{
BindingSource thisBindingSource = (BindingSource)sender;
DataRow ThisDataRow = ((DataRowView)thisBindingSource.Current).Row;
if (ThisDataRow == LastDataRow)
{
throw new ApplicationException();
}
UpdateRowToDatabase();
LastDataRow = ThisDataRow;
}
}
}
So helfen, folgte ich diese Anleitung und Es werden keine Fehler ausgelöst, die Datenbank wird jedoch nicht aktualisiert. Ich habe gerade meinen Beitrag aktualisiert, um meinen Code für das Formular zu haben. Ich setze Haltepunkte durch und wenn ich eine Zelle im Datagridviewer bearbeite geht es zur upgedatedaterowtodatabase Methode aber es aktualisiert die Tabelle nicht. Mache ich etwas falsch? Es sieht so aus, als würde alles gut funktionieren, aber es wird den verdammten Tisch nicht aktualisieren! so frustrierend! – user3494110