Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C Sharp Datenbanksuch und Updatefrage

Frage Entwicklung C und C++

Mitglied: iceget

iceget (Level 2) - Jetzt verbinden

09.10.2010, aktualisiert 11.10.2010, 3028 Aufrufe, 5 Kommentare

Hallo liebe Community,

und zwar habe ich folgende Frage:

ich bin beginner in C#.

Ich habe eine Konsolenanwendung erstellt, mit der ich eine AccessDatenbank mittels ODBC auslese,
und dann direkt in eine MySQL Datenbank schreibe.

Das funktioniert alles prima, nur würde ich gerne folgendes erreichen:

Wie kann ich das bewerkstelligen das er zuerst (bevor er in die MySQL Datenbank einen Eintrag macht) in der MySQL Datenbank nachschaut ob es diesen Eintrag schon gibt (anhand der einmaligen NR),
und erst dann die Daten von der Access Datenbank reinspielt?

So wie jetzt, befüllt er mir die Datenbank nach jeder Ausführung, ...


Könnt ihr mir helfen?

Eigentlich möchte ich die Access Datenbank mit der MySQL Datenbank syncen,
und anschließend immer nur über das Datum zurückverfolgen was geändert wurde,
das ich nicht immer alles syncen muss. Wenn was geändert wird, wird das Feld Datum auf das aktuelle Änderungsdatum geändert!

Vielen Dank!

glg Markus

Hier der Code:
01.
using System; 
02.
using System.Collections.Generic; 
03.
using System.Linq; 
04.
using System.Text; 
05.
using System.Threading; 
06.
using System.Data.Odbc; 
07.
// benötigt für die MySql Datenbankanbindung 
08.
using MySql.Data.MySqlClient; 
09.
 
10.
namespace SyncService 
11.
12.
    class Program 
13.
14.
        static void Main(string[] args) 
15.
16.
 
17.
 
18.
            // MySQL Zugangsdaten 
19.
            string mysql_host = "xxx"; 
20.
            string mysql_datenbank = "xxx"; 
21.
            string mysql_benutzername = "xxx"; 
22.
            string mysql_passwort = "xxx"; 
23.
 
24.
            // MySQL Datenbank Verbindungsstring 
25.
            string mysql_connect = "server=" + mysql_host + ";database=" + mysql_datenbank + ";uid=" + mysql_benutzername + ";password=" + mysql_passwort + ";"; 
26.
 
27.
            // Definieren einer neuen MySQL-Verbindung 
28.
            MySqlConnection MySQLDbConnection = new MySqlConnection(mysql_connect); 
29.
 
30.
            // MySQL Datenbankverbindungstest. Falls dieser fehlschlägt, wird das Programm beendet 
31.
            try 
32.
33.
                MySQLDbConnection.Open(); 
34.
35.
            catch (MySqlException ex) 
36.
37.
                Console.WriteLine("connection to the MySQL Database '" + mysql_datenbank + "' failed."); 
38.
                Console.WriteLine("The MySQL Database returned the following message"); 
39.
                Console.WriteLine(ex.Message); 
40.
                Thread.Sleep(5000); 
41.
                return; 
42.
43.
 
44.
            // ODBC DSN Name (muss zuerst in Windows per System DSN hinzugefügt werden (Access Datenbank auswählen, System DSN Name zuweisen, fertig)) 
45.
            string DSN = "xxx"; 
46.
 
47.
            // Definieren einer neuen Access ODBC-Verbindung 
48.
            OdbcConnection AccessDbConnection = new OdbcConnection("DSN=" + DSN); 
49.
 
50.
            // Access Datenbankverbindungstest. Falls dieser fehlschlägt, wird das Programm beendet 
51.
            try 
52.
53.
                AccessDbConnection.Open(); 
54.
55.
            catch (OdbcException ex) 
56.
57.
                Console.WriteLine("connection to the DSN '" + DSN + "' failed."); 
58.
                Console.WriteLine("The OdbcConnection returned the following message"); 
59.
                Console.WriteLine(ex.Message); 
60.
                Thread.Sleep(5000); 
61.
                return; 
62.
63.
 
64.
            OdbcCommand AccessDbCommand = AccessDbConnection.CreateCommand(); 
65.
            AccessDbCommand.CommandText = "SELECT * FROM CLI ORDER BY NOME ASC"; 
66.
            OdbcDataReader AccessDbReader = AccessDbCommand.ExecuteReader(); 
67.
 
68.
 
69.
            int id = 0; 
70.
            string ida = ""; 
71.
            // Ausgeben der Einträge der Tabelle CLI 
72.
            while (AccessDbReader.Read()) 
73.
74.
 
75.
                id++; 
76.
 
77.
                // führende 0en 
78.
                if (id <= 10) 
79.
80.
                    ida = "0000"; 
81.
82.
                if (id >= 10) 
83.
84.
                    ida = "000"; 
85.
86.
                if (id >= 100) 
87.
88.
                    ida = "00"; 
89.
90.
                if (id >= 1000) 
91.
92.
                    ida = "0"; 
93.
94.
 
95.
                // GetString(0) = Vertragsnummer 
96.
                String CODICE = AccessDbReader.GetString(0); 
97.
                 
98.
                // GetString(1) = Name 
99.
                String NOME = AccessDbReader.GetString(1); 
100.
 
101.
                Console.WriteLine(ida + id + " | "); 
102.
 
103.
 
104.
                MySqlCommand mysql_command_update = new MySqlCommand("INSERT INTO `" + mysql_datenbank + "`.`CLI` (`CODICE`,`NOME`) VALUES ('" + CODICE + "','" + NOME + "');", MySQLDbConnection); 
105.
                mysql_command_update.ExecuteNonQuery(); 
106.
 
107.
108.
            Thread.Sleep(99999); 
109.
 
110.
            AccessDbReader.Close(); 
111.
            AccessDbCommand.Dispose(); 
112.
            AccessDbConnection.Close(); 
113.
 
114.
 
115.
116.
117.
}
[Edit] Latent vorhandenen Code durch so genannte "Code-Formatierung" sichtbar gemacht. Weil ich geduldig bin.... [/Edit]
Mitglied: AhraLordNikon
09.10.2010 um 12:40 Uhr
Mal etwas plump ;) mach doch einfach erst eine select und schau ob du was zurückbekommst. Falls er nichts findet dann machst du den Insert oder hab ich dich falsch verstanden.
Bitte warten ..
Mitglied: Edi.Pfisterer
09.10.2010 um 19:34 Uhr
Hallo!
gebe AhraLordNikon recht, erst
01.
' Pseudocode: 
02.
select * from tbl_xy where id = x und  
03.
if rs.eof then 
04.
    insert into ... 
05.
end if
Dein Code ist allerdings mangels Formatierung ziemlich schwer lesbar (ich will mich da gar nicht bemühen)...

mein Tipp:
eine entsprechende Formatierung mittels CODE (ich emfpehle die Formatierungshilfe) wird sicherlich mehr Kollegen für dieses Thema begeistern können

gutes gelingen
lg
Bitte warten ..
Mitglied: 76109
10.10.2010 um 20:00 Uhr
Hallo

Noch als kleine Anmerkung zu den führenden Nullen. Das geht auch einfacher:
Right("0000" + id, 5)

Gruß Dieter
Bitte warten ..
Mitglied: iceget
13.10.2010 um 01:10 Uhr
DANKE!

ich habe dies nun so durchgeführt, so funktioniert es perfekt!

Vielen Dank!

glg Markus
Bitte warten ..
Mitglied: iceget
13.10.2010 um 01:11 Uhr
Vielen Dank für diesen wirklich sehr hilfreichen Tipp (bin leider noch in der Anfangsphase von C#).

lg Markus
Bitte warten ..
Ähnliche Inhalte
IDE & Editoren
IDE für C-Sharp und C++ auf Windows
gelöst Frage von BugdroidIDE & Editoren8 Kommentare

Hallo, Ich nutze derzeit Visual Studio, aber auf Dauer ist es mir etwas zu Ressourcenfressend und für meine Zwecke ...

C und C++
C Sharp XAML Universal
Frage von DippsC und C++3 Kommentare

Hallo ich versuche gerade mit C#2015 ein Projekt Universal XAML zu erstellen um auf einem Raberry PI 2 mit ...

C und C++
C-sharp SearchPattern (Regex)
Frage von YanmaiC und C++6 Kommentare

Hallo ihr Administratoren, ich verwende ein AUtocpmpletemenu Plugin. Dort habe ich Snippets, die dann sozusagen completed werden. Beim erstellen ...

C und C++
C-sharp Form buggt
gelöst Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren. Ich habe ein kleines Problem. Unszwar möchte ich eine Ordner von C# zu einem PHP Script ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 21 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 4 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 5 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Windows 10
Probleme mit Dateien, deren Pfad + Dateiname länger als 256 Zeichen sind
Frage von FalaffelWindows 1011 Kommentare

Guten Tag, unter Windows 10 scheint es immer noch das Problem zu geben, dass der Pfad + Dateiname einer ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Microsoft Office
Outlook 2016 - Makro startet nicht über Knopf im Menüband
Frage von ZunarasMicrosoft Office9 Kommentare

Schönen guten Tag! ich brauche wieder einmal Hilfe. Ich möchte gerne von Office 2010 32bit auf 2016 64bit wechseln ...