DB-Probleme
-
Hall C/C++ Forum!
Ich habe in einem ArrayList oder Vector
Strings und int-werte(int über die Wrapper-Klasse),
die ich aus einer Textdatei zuvor ausgelesen habe
und nun möchte damit eine Access-DB füllen und habe
mit der Funktion unten Probleme.
v.elementAt(i) anstelle String a und String b geht nicht
bei der Insert-Anweisung
Hat jemand eine Idee wie soetwas geht???public void einfuegen() { String url = "jdbc:odbc:xyz"; String user = ""; String password = ""; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(Exception ex){} Vector v = new Vector(); //oder ArrayList for(int i=0; i<v.size(); i++) { String sql = "INSERT INTO Test VALUES(int zahl,String a,String b);"; java.sql.Connection con = null; try { con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); stmt.executeUpdate(sql); } catch (Exception e){} } }
-
Du musst deinen SqlString nicht noch mit Typen versehen. Trage bei Values einfach die Werte der Variablen ein, so wie sie von der DB verstanden werden und gut ist.
-
okay,
ich hoffe die methode schaut anders aus in wirklichkeit
weil new Vector()
und dann den vector durchzählen (der ja leer ist) bringt nicht viel
auf jeden fall
so sollte ein insert aussehen:
Insert into Tabelle values (1,'string1','string2',1.0,NULL)
bitte notieren: strings innerhalb ''
probier das mal
gomberl
-
Zunächst danke für die Vorschläge.
Mit anderen Worten lese ich eine Textdatei aus,
die etwa so afgebaut ist.
Und es sollen immer die WerteEreignisnr = 259
Name = Basketball
Beschreibung = WMEreignisnr = 111
Name = Boxen
Beschreibung = WBC259 Basketball WM
111 Boxen WBCDatensatz für Datensatz
eingefügt werden.
-
okay
ich gehe davon aus du hast einen vector der aus datenobjekten besteht
jedes datenobjekt hat folgende eigenschaften
Ereignisnr,Name,Beschreibungdas heisst folgendermassen kommst du an das ziel (davon ausgehend dein vector ist richtig gefuellt)
//ich mach es mit vector.size() so wie du auch wenn ein iterator besser waere
//ein ganz simples schnell zusammengedachtes loesungsbeispielfor(int i=0; i < myvector.size(); i++){ MyDataObjectType CurrentObject = (MyDataObjectType) myvector.get(i); sql = "INSERT INTO Tabelle values (" + CurrentObject.EreignisNr + ",'" + CurrentObject.Name + "','" + CurrentObject.Beschreibung + "')"; .... // ausfuehren der query }
gomberl
-
Dieser Code unten liefert keinen Fehler. Allerdings fügt er aber auch
keine Datensätze in die Datenbankpublic void einfuegen() { String url = "jdbc:odbc:Deney"; String user = ""; String password = ""; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(Exception ex){} Vector v = new Vector(); v.add("qWWWWW"); v.add("qCCCC"); v.add("qGGGGG"); String sql = "INSERT INTO Test VALUES("; int lastElem = v.size() - 1; for (int i = 0; i < lastElem ; i++) { sql += "'" + v.get(i).toString() + "',"; } sql += "'" + v.get(lastElem).toString() + "');"; System.out.println("Test:" + sql); java.sql.Connection con = null; try { con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); stmt.executeUpdate(sql); } catch (Exception e) { System.out.println(e.getMessage()); } }
-
tjaja, das liegt dann wohl an:
String user = ""; String password = "";
-
bitte löschen...
-
bitte löschen...