Autor Beitrag
mcsnoop
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Fr 16.04.10 11:08 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Fr 16.04.10 21:59 
Hallo

ich würde zuerst einmal im Netz verschiedenen Beispiele ausprobieren wie zum Beispiel:

www.jonasjohn.de/sni...nnection-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:

ausblenden volle Höhe 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);
        }


       // mit CSB:
        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();
            }
        }

        // ohne CSB:
        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 user profile iconKha: Highlight- durch C#-Tags ersetzt
Einloggen, um Attachments anzusehen!
mcsnoop Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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 (im Dateianhang oder im allerletzten Beitrag).

user profile iconmcsnoop hat folgendes geschrieben Zum zitierten Posting springen:
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