Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - BindingNavigator + Eingabemaske + DataGrid
mcsnoop - Fr 16.04.10 11:08
Titel: BindingNavigator + Eingabemaske + DataGrid
Hi@All,
Das DataGrid will ich zur Anzeige/Auflistung aller Einträge nutzen.
Mit dem BindingNavigator will ich die Möglichkeit geben Datensätze anzulegen/löschen und im Einzelschritt zu navigieren.
Über die Maske sollen die Werte sowohl anzeigbar als auch editierbar sein.
Hat einer ein Beispiel wie ich da am besten rangehe?
Entsprechende Spalten habe ich im sdf bereits angelegt.
Im BindingNavigator ist standardmäßig ein "+" und ein "x" vorhanden -> Frage:
Wann wird gespeichert? Automatisch wenn ein "neuer" Eintrag eingefügt wird oder ist das voll mir überlassen wann ich die eingegeben Sachen in sdf packe?
Grüße
joshua9 - Fr 16.04.10 16:15
Hallo
es gibt viele Beispiele im Netz. Mit welcher Datenbank arbeitst du,
ist der Zugriff über OleDbConnection oder über SqlConnection
die Bearbeitung, erfolgt diese in einer Tabelle oder in meheren
Gruss Joshua
mcsnoop - Fr 16.04.10 16:25
Hallo Joshua,
MS SQL Compact -> DB File liegt im Programmverzeichnis
Bis jetzt hab ich die Masken alle fertig und die Tabellen angelegt im DB File.
Drauf Zugegriffen habe ich bis jetzt noch nicht, wo muss das rein?
in -> public Form1()..... ?
Zu den Tabellen:
In 2 Tabellen stehen im Grunde nur Einträge drinnen die in Comboboxen reingeladen werden sollen. In Tabellen deshalb weil die Auswahl sich im Laufe vergrößern kann/wird.
In 2 weiteren Tabellen stehen dann Datensätze die Vorher in eine Maske eingegeben worden sind.
So erstmal die graue Theorie.
Grüße
joshua9 - Fr 16.04.10 21:59
Hallo
ich würde zuerst einmal im Netz verschiedenen Beispiele ausprobieren wie zum Beispiel:
http://www.jonasjohn.de/snippets/csharp/sql-connection-example.htm
ich selber habe anhand solcher Beispiele erste Erfahrungen gemacht und habe noch das
Buch Datenbank-Programmierung mit Visual C# 2005 gekauft, hier findest du alle möglichen
Erklärungen dazu.
Anbei sende ich dir ein Beispiel wie eine Connection mit der Datenbank gehen könnte:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
namespace WindowsApplication1 { using System.Data.SqlClient;
public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private string CrLf = Environment.NewLine; private SqlConnection conn = null;
private void showMessage() { MessageBox.Show("Die Verbindung wurde erfolgreich hergestellt !" + CrLf + "Data Source: " + conn.DataSource + CrLf + "Server Version: " + conn.ServerVersion); }
private void button2_Click(object sender, EventArgs e) { SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder(); csb.DataSource = ".\\SQLEXPRESS"; csb.IntegratedSecurity = true; csb.InitialCatalog = "Northwind"; conn = new SqlConnection(csb.ConnectionString); try { conn.Open(); showMessage(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conn.Close(); } }
private void button3_Click(object sender, EventArgs e) { string connStr = "Data Source = .\\SQLEXPRESS; Initial Catalog=Northwind; Integrated Security=true"; conn = new SqlConnection(connStr); try { conn.Open(); showMessage(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conn.Close(); } }
private void button4_Click(object sender, EventArgs e) { string connStr = Properties.Settings.Default.connStr; MessageBox.Show(connStr); conn = new SqlConnection(connStr); try { conn.Open(); showMessage(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { conn.Close(); } }
} } |
ich gebe dir das file noch im Anhang mit
gruss joshua
Moderiert von
Kha: Highlight- durch C#-Tags ersetzt
mcsnoop - Fr 16.04.10 22:35
Hallo Joshua,
allerbesten Dank. Ich werde die Beispiele erst einmal durcharbeiten und bei Fragen mich nochmal hier melden.
Grüße
JüTho - Sa 17.04.10 11:20
@Joshua
Dein Code liest sich mit der Einfärbung grausam. Bitte benutze die Code-Markierung des Forums, das kannst du auch nachträglich erledigen: Öffne deinen Beitrag mit dem Schere-Button, "Bereiche" öffnen, in der ComboBox C# auswählen, Text markieren, Plus-Button, mit "Vorschau" kontrollieren, dann speichern.
Zur Sache: Eine Connection sollte nach Erledigung mit Dispose wieder aufgelöst werden (nicht nur geschlossen). Das kann ich wegen der Einfärbung nicht erkennen. Am einfachsten und sichersten geht das über einen
using-Block, siehe
[Artikel] Ressourcen schonen - Datenbanken richtig öffnen und schließen [
http://www.mycsharp.de/wbb2/thread.php?threadid=22354] (im Dateianhang oder im allerletzten Beitrag).
mcsnoop hat folgendes geschrieben : |
Wann wird gespeichert? Automatisch wenn ein "neuer" Eintrag eingefügt wird oder ist das voll mir überlassen wann ich die eingegeben Sachen in sdf packe? |
Es ist deine Angelegenheit. Änderungen werden (fast) automatisch in die angehängte DataTable übernommen. Die Übernahme in die DB erfolgt z.B. durch
DbDataAdapter.Update, aber erst beim Aufruf durch den Programmierer. Es kann automatisch gesteuert werden; aber in aller Regel ist es benutzerfreundlicher, wenn es durch einen Button-Click ausgelöst wird.
Hinweis: Die Änderungen werden automatisch aus der GUI in die DataTable übernommen, wenn die aktuelle Zeile gewechselt wird. Damit auch die letzten Änderunge der aktuellen Zeile als gültig erkannt werden, ist
EndEdit auszuführen.
Gruß Jürgen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!