Speichern von änderungen einer DataGridView-zurück zu einer SQL-Datenbank?
Ich versuche, mich ein DataGridView, dass zeigt Daten aus einer SQL-Datenbank (GSM.sdf) und speichert die gemachten änderungen auf das DataGridView zurück zu der Datenbank, wenn Sie eine speichern-Schaltfläche gedrückt wird. Die Daten werden angezeigt in Ordnung, aber nichts passiert, wenn der button speichern gedrückt wird. Ich habe nach der top-Antwort aus diesem thread:
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/98bc0b4d-a2ea-4b74-81f0-473da624528a
Aber es funktioniert nicht. Hier ist mein code:
namespace WindowsFormsApplication5
{
public partial class Zeelot : Form
{
DataTable table = new DataTable();
SqlCeDataAdapter z;
DataSet gSMDataSet = new DataSet();
public Zeelot()
{
InitializeComponent();
}
private void Zeelot_Load(object sender, EventArgs e)
{
string b = @"Data Source =.\SQLEXPRESS;database=GSM;Integrated Security=FALSE;Connection Timeout=30;User Instance=FALSE";
SqlCeConnection conn = new SqlCeConnection(b);
conn.Open();
string cd = "SELECT * FROM PhoneNumbers";
z = new SqlCeDataAdapter(cd, conn);
z.Fill(gSMDataSet, "PhoneNumbers");
table = gSMDataSet.Tables[0];
conn.Close();
dataGridView1.DataSource = table;
}
private void SaveButton_Click(object sender, EventArgs e)
{
SqlCeCommandBuilder local_SqlCommandBuilder = new SqlCeCommandBuilder(z);
local_SqlCommandBuilder.ConflictOption = System.Data.ConflictOption.OverwriteChanges;
z.UpdateCommand = local_SqlCommandBuilder.GetUpdateCommand();
z.Update(((System.Data.DataTable)this.dataGridView1.DataSource));
((System.Data.DataTable)this.dataGridView1.DataSource).AcceptChanges();
}
}
}
InformationsquelleAutor Don Zheng | 2012-07-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dein problem liegt wo Sie werfen ein DataSource, System.Daten.DataTable
Versuchen z.Update(gSMDataSet);
Ich glaube auch nicht müssen Sie AcceptChanges()
InformationsquelleAutor J. Mitchell
AcceptChanges() sendet die änderungen vom DGV an die verbundene Datenquelle (Ihre DataTable)
Versuchen Aufruf von AcceptChanges() auf, bevor Sie versuchen, zu senden, die änderungen an Ihrer Datenbank.
Bekommt Ihr nicht alle Ausnahmen bei der Laufzeit?
Versuchen mit Hilfe von breakpoints, untersuchen Sie den aktuellen Status Ihrer Verbindung-Objekt, bevor Sie versuchen, senden Sie Ihre änderungen an Ihrer Datenbank.
Auch, AFAIK MS rät von der Schaffung von verbindungen manuell, wenn Sie Sie nutzen wollen, innerhalb eines DataAdapter.
DataAdapter-Konstruktor kann eine Verbindung erstellen, die auf Ihre eigenen
InformationsquelleAutor buddybubble