Placebo
BIOS-Overclocker(in)
Mein persönlicher Codehorror: Von C# zu Access. Hilfe!
Hallo,
ich habe jetzt seit grob geschätzt 8-12 Stunden versucht, C# dazu zu bringen, in Access eine einzige verdammte Zeile zu schreiben und bin so langsam dabei, den Verstand zu verlieren (aka "ich würde jetzt lieber Multithreading-Probleme debuggen"). Inzwischen habe ich eigentlich jede Website durch, von Stackoverflow bis MSDN mit allem dazwischen. Das es generell funktioniert, kann ich mit 90% Sicherheit bejahen, denn im gleichen Projekt hat schon ein Kollege einige Zeilen hinzugefügt, die Excel und SQL zum laufen bringen. Das Problem ist, dass der Code nicht nur kaum zu verstehen ist, die Erklärungen des Kollegen sind es auch nicht. Dazu kommt noch der ganze (auskommentierte) Codemüll usw... Dieser *"$/§$" kann doch nicht so schwer sein. Aber nun zum Code:
Nachdem dieser Teil für mich komplettes #Neuland ist, habe ich auch mal versucht, alles richtig zu bennen. Wenn jemand eine bessere Bezeichnung hat, postet sie bitte, und warum.
Die aktuelle Fehlermeldung ist, dass C# keine [Irgendeine-Nr] findet. Wegen dem Bindestrich? Ich kann nicht darauf verzichten.
Hallo,
ich habe jetzt seit grob geschätzt 8-12 Stunden versucht, C# dazu zu bringen, in Access eine einzige verdammte Zeile zu schreiben und bin so langsam dabei, den Verstand zu verlieren (aka "ich würde jetzt lieber Multithreading-Probleme debuggen"). Inzwischen habe ich eigentlich jede Website durch, von Stackoverflow bis MSDN mit allem dazwischen. Das es generell funktioniert, kann ich mit 90% Sicherheit bejahen, denn im gleichen Projekt hat schon ein Kollege einige Zeilen hinzugefügt, die Excel und SQL zum laufen bringen. Das Problem ist, dass der Code nicht nur kaum zu verstehen ist, die Erklärungen des Kollegen sind es auch nicht. Dazu kommt noch der ganze (auskommentierte) Codemüll usw... Dieser *"$/§$" kann doch nicht so schwer sein. Aber nun zum Code:
Code:
OleDbConnection Access_Verbindung = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Dateipfad;Persist Security Info=False;");
OleDbDataAdapter Access_Befehle = new OleDbDataAdapter();
Access_Befehle.SelectCommand = new OleDbCommand("SELECT Dateiname, [Irgendeine-Nr] FROM [tbl_Zeilen]", Access_Verbindung);
Access_Befehle.InsertCommand = new OleDbCommand("INSERT into [tbl_Zeilen] (Dateiname, [Irgendeine-Nr]) VALUES (@Dateiname, @[Irgendeine-Nr])", Access_Verbindung);
Access_Befehle.InsertCommand.Parameters.Add(new OleDbParameter("Dateiname", OleDbType.VarChar, 250, "Dateiname"));
Access_Befehle.InsertCommand.Parameters.Add(new OleDbParameter("Test", OleDbType.VarChar, 250, "[Irgendeine-Nr]")); //Absichtlich Text
DataSet Access_Datencache = new DataSet();
Access_Befehle.Fill(Access_Datencache); //Warum eigentlich Adapter.Fill(DataSet) und nicht DataSet.Fill(Adapter)?
DataRow Access_Zeile = Access_Datencache.Tables[0].NewRow();
Access_Zeile[1] = "blaaahhrg"; //Zeile 0 = ID
Access_Zeile[2] = "52xx525A";
Access_Datencache.Tables[0].Rows.Add(Access_Zeile);
Access_Befehle.Update(Access_Datencache);
Nachdem dieser Teil für mich komplettes #Neuland ist, habe ich auch mal versucht, alles richtig zu bennen. Wenn jemand eine bessere Bezeichnung hat, postet sie bitte, und warum.
Die aktuelle Fehlermeldung ist, dass C# keine [Irgendeine-Nr] findet. Wegen dem Bindestrich? Ich kann nicht darauf verzichten.
