Forum: ADO.NET |
Thema:
Verzweifle...: Fehler bei INSERT INTO unter ASP.NET + ADO.NET |
Von:
G. Guest (
27.07.2003 14:15) |
Hallo !
Eigentlich möchte ich nur innerhalb eines Verzeichnisses die Namen aller .jpg-Dateien auslesen, splitten und die erzeugten Strings jeweils in die richtige Spalte einer Access-DB hinzufügen.
Mit einer For-Schleife soll das Verzeichnis solange durchlaufen werden, bis keine jpg-Datei mehr vorhanden ist - mit jedem erfolgreichen Durchlauf soll ein neuer Datensatz erzeugt werden, in den die Strings übergeben und eingefügt werden.
Die DB besteht aus sechs Spalten von denen ich aber nur immer bestimmte drei Spalte füllen möchte.
Verwende folgenden Code:
<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">
Sub Pruefen(O as Object, E as EventArgs)
Dim objVerbindung As OleDbConnection
Dim objBefehl As OleDbCommand
Dim sqlInsert As String
Dim ergebnis As Integer
Dim dateien() as String
Dim datei as String
Dim oben as String
Dim back as String
Dim xSplit as Array
dateien = Directory.GetFileSystemEntries(Pfad.text)
For Each datei In dateien
back = Replace(Replace(datei, Pfad.text & "\", ""), ".jpg", "")
xSplit = split(back, " - ")
sqlInsert = "INSERT INTO JPGArchiv(Veranstaltung, Name, Beides)"
sqlInsert &= "Values("
sqlInsert &= "'" & xSplit(0).ToString & "',"
sqlInsert &= "'" & xSplit(1).ToString & "',"
sqlInsert &= "'" & xSplit(0).ToString & " " & xSplit(1).ToString & "')"
objVerbindung = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\news.mdb;")
objVerbindung.Open()
objBefehl = New OleDbCommand(sqlInsert, objVerbindung)
objBefehl.ExecuteNonQuery()
objVerbindung.Close()
objVerbindung = Nothing
objBefehl = Nothing
Next
End Sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<br />
<asp:TextBox id="Pfad" runat="server" value="D:\Eigene Dateien\Eigene Bilder" size="100"></asp:TextBox>
<asp:Button id="Button1" onclick="Pruefen" runat="server" Text="Transfer into DB"></asp:Button>
</form>
</body>
Die Fehlermeldungen:
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.OleDb.OleDbException: Syntaxfehler (fehlender Operator) in Abfrageausdruck ''Otto','Geburtstag Ott''.
Line 41: objBefehl.ExecuteNonQuery()
Vielleicht liegt's an einem <%@ import Namespace... %>
Ich vermute aber, dass der EXECUTE-Befehl, den ich verwende, falsch ist - bin mir aber nicht sicher. Denn von der SQL-Anweisung werden die korrekten Werte zurückgeliefert...
Wisst Ihr vielleicht, woran das liegt bzw. kennt Ihr den Code für EXECUTE ?
cu
Chris
Betreff |
Von |
Datum |
|
|
Christian
Mairoll
|
27.07.2003 19:08 |
|
|
Re: Verzweifle...: Fehler bei INSERT INTO unter...
Habe jetzt den SQL-Befehl folgendermassen zusammengebaut (in einer Zeile):<br>sqlInsert = "INSERT INTO MP3Archiv(Song, Interpret, Beides)Values('" & xSplit(0).ToString & "','" & xSplit(1).ToString &... |
|
|
|
|
|
G.
Guest
|
27.07.2003 21:01 |
|
|
G.
Guest
|
27.07.2003 23:23 |
|
|
G.
Guest
|
06.08.2003 20:15 |
|
|
Re: Verzweifle...: Fehler bei INSERT INTO...
Was meinst Du damit? Execute Befehl!!??<br>Du hast doch objBefehl.ExecuteNonQuery() eingesetzt!<br><br>Ich habe nähmlich den gleichen Fehler !<br>es wird einfach nichts in die DB geschrieben!! |
|
|
|
|
|
G.
Guest
|
17.05.2004 20:51 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!