Autor Beitrag
Phelios
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP, Win 7
Visual Studio 2012 Express C#
BeitragVerfasst: Mi 21.01.09 18:19 
Hi Leuts ...

Ich hab Probleme mit nem popligen SQL-INSERT. :gruebel:
Unter MySql hab ich das schon zig Mal gemacht,
nur mit nem ACCESS-File noch nicht so oft.

Guckt Euch mal die Einzelteile an.

1.) Der ConnectString zur Access-DB

ausblenden C#-Quelltext
1:
2:
3:
4:
        string ConStr = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
        "Data Source=" + AccessFile;

        InfoBox(ConStr); // Kontroll - Ausgabe 1


Laut Kontroll-Ausgabe 1 dürfte das richtig sein. Oder ?

user defined image
Der Datei-Pfad stimmt ...

Jetzt das INSERT
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        string SqlStr = "INSERT INTO User(ServerTitel, ServerName, DBName, 
                        UserName, Password, DBCreate) "
 +
                        "VALUES(" +
                        ns.ServerTitel + ", " +
                        ns.ServerName + ", " +
                        ns.DBName + ", " +
                        ns.UserName + ", " +
                        ns.Password + ", " +
                        "Ja)";

        InfoBox(SqlStr); // Kontroll - Ausgabe 2


Das sind meine Fantasie - Eingaben. Der Komplette INSERT
user defined image

Findet einer von Euch da einen Fehler .... ?
Ich finde nix ... :autsch:

Und hier der Rest vom Code ...

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
        using(OleDbConnection conn = new OleDbConnection(ConStr))
        {
          using(OleDbCommand cmd = new OleDbCommand(SqlStr, conn))
          {
            try
            {
              conn.Open();

              cmd.CommandText = SqlStr;
              cmd.CommandType = CommandType.Text;
              cmd.ExecuteNonQuery();
            }
            catch(Exception x)
            {
              ErrorBox(x.Message);
            }

          } // using(OleDbCommand cmd = new OleDbCommand(SqlStr, conn))
        }   // using(OleDbConnection conn = new OleDbConnection(ConStr))


Der Fehler wird durch die Exeption ausgegeben.

user defined image

Das soll ein SyntaxFehler sein.
Vielleicht hab ich auch ne Kleinigkeit übersehen.

Richtet Eure geschulten Augen mal auf die SQL-Syntax.
Meiner Meinung nach müßte es funktionieren.

Aber ich hab mit Access und C# noch nicht so viel Erfahrung.
Für einen Tipp wäre ich sehr dankbar.
Kann eh' mal wieder nur ne Kleinigkeit sein.

DANKE im Voraus

Greeting
( Karl )


Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Mi 21.01.2009 um 18:35
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 21.01.09 18:29 
Alle Strings müssen in einfache Anführungsstriche geschrieben werden.
Jedoch wäre es besser, wenn du dich mit 'DbParameter' auseinandersetzt (Stichwort: SQL-Injection). Hierzu gibt es schon viele Threads im Forum...