Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - DataTables in Access Datenbank speichern


Alex1989 - Mo 09.08.10 09:30
Titel: DataTables in Access Datenbank speichern
Nach mehreren suchaktionen und Foren hab ich zwar lösungsansätze gefunden aber die helfen mir auch nicht wirklich weiter mein problem zu beheben.


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:
        string speicherdatei, speicherurl;
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.ShowDialog();
            speicherdatei = sfd.FileName;
            speicherurl = sfd.InitialDirectory;

            if (speicherdatei == "")
            {
                MessageBox.Show("Sie haben keine Datei gewählt!");
                return;
            }
            
            OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+speicherurl+speicherdatei);
            string tabellenname = textBox1.Text+"_neu";
           
            StringBuilder sb = new StringBuilder();
            sb.Append("CREATE TABLE ");
            sb.Append(tabellenname);
            sb.Append("(");
            for (int i = 0; i < dt2.Columns.Count; i++)
            {
                sb.AppendFormat("{0} {1},", dt2.Columns[i].ColumnName, dt2.Columns[i].DataType.ToString());
            }
            sb.Append(")");
            sb.Replace(",)"")");
            sb.Replace("System.""");

            OleDbCommand cmd = new OleDbCommand(sb.ToString(), con);
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            

            OleDbDataAdapter dadapter2 = new OleDbDataAdapter();
            dadapter2.SelectCommand = new OleDbCommand("Select * from " + tabellenname, con);
            OleDbCommandBuilder custCB = new OleDbCommandBuilder(dadapter2);

            dadapter2.Update(dt2);


So mir ist bekannt das es nicht funktionieren wird da die Rows ignoriert werden aber darum gehts mir nicht. Ich habe das problem das sehr häufig bei Tests in der zeile

C#-Quelltext
1:
cmd.ExecuteNonQuery();                    

die fehlermeldung "Syntaxfehler in Felddefinition"
Was kann ich machen?

Danke schonmal im vorraus


Alex1989 - Mo 09.08.10 10:30

Okay hat sich erledigt der Syntaxfehler entstand durch ein Leerzeichen im Columnnamen einer tabelle