Ralf_01 Geschrieben 24. November 2009 Geschrieben 24. November 2009 Hallo, ich habe eine Datanbankabfrage mit VB 2008 erstellt In ihr kann man über Textboxen Daten in die Datenbank schreiben. Dabei bin ich auf folgendes Problem gestoßen: Wenn ich versuche Kundennamen wie zb: L'oréal in die Datenbank einzutragen, bekomme ich die Fehlermeldung "Syntaxfehler (fehlender Operator)in Abfrageausdruck". (alles Andere funktioniert) Sperren darf ich Das " ' " Zeichen nicht. Gibt es eine Möglichkeit das ' Zeichen trotzdem zu verwenden ? _danke _ Ralf Zitieren
TDM Geschrieben 24. November 2009 Geschrieben 24. November 2009 Probier mal im Insert " statt '. INSERT INTO TAB1(Name) VALUES("L'oréal"); Zitieren
Ralf_01 Geschrieben 24. November 2009 Autor Geschrieben 24. November 2009 (bearbeitet) Hi @TDM sorry ,ich habe ein bisschen zu wenig Infos gegeben. Ich gebe den Namen mit ' (z.B:L'oréal) in eine TextBox der Benutzeroberfläche ein und füge ihn dann der Datenbank hinzu. Dabei entsteht die Fehlermeldung. Ralf INSERT INTO TAB1(Name) VALUES("L'oréal"); heisst also INSERT INTO TAB1(Name) VALUES (' " & TxtName.Text & " ') und in der TextBox schreibe ich L'oréal. Bearbeitet 24. November 2009 von Ralf_01 Zitieren
TDM Geschrieben 24. November 2009 Geschrieben 24. November 2009 und füge ihn dann der Datenbank hinzu. Und genau das wird doch sicher mit einem SQL-Insert gemacht... Zitieren
realgun Geschrieben 24. November 2009 Geschrieben 24. November 2009 (bearbeitet) Hi INSERT INTO TAB1(Name) VALUES (' " & TxtName.Text & " ') und in der TextBox schreibe ich L'oréal. Ist das Dein SQL - Statement? Schon mal mit SQLParameter versucht? Die sind u.a. auch für solche Fälle da SqlCommand cmd = new SqlCommand(); cmd.CommandText = "Insert Into TAB1 (Name) Values (@parameterName)"; cmd.SqlParameters.AddWithValue("@parameterName", TxtName.Text); (Den Code habe ich jetzt weder geprüft noch getestet, da sind eventuell ein paar Fehlerchen drin. Aber so in etwa macht man das bei MSSQL mit Parametern, ich glaub bei Access must Du OleDbParameter verwenden und diese sind namenlos, also nur ein "?" im Statement) Im Netz gibts folgendes Beispiel: http://www.mikesdotnetting.com/Article/26/Parameter-Queries-in-ASP.NET-with-MS-Access Bearbeitet 24. November 2009 von realgun Edit sagt: Zitieren
TDM Geschrieben 25. November 2009 Geschrieben 25. November 2009 INSERT INTO TAB1(Name) VALUES("L'oréal"); heisst also INSERT INTO TAB1(Name) VALUES (' " & TxtName.Text & " ') und in der TextBox schreibe ich L'oréal. Eben nicht. C#: "INSERT INTO TAB1(Name) VALUES (\"" & TxtName.Text & "\")" VB: "INSERT INTO TAB1(Name) VALUES (""" & TxtName.Text & """)" Zitieren
Ralf_01 Geschrieben 25. November 2009 Autor Geschrieben 25. November 2009 Hi @ all, vielen, vielen Dank für die Antworten. Ich hatte es gestern noch lösen können. INSERT INTO TAB1(Name) VALUES (' " & Replace(TxtName.Text, " ' "," ' ' ") & " ') eine Anleitung steht hier Einfügen eines Datensatzes mit dem INSERT Statement ...und nochmal DANKE Ralf Zitieren
paslanmazbul Geschrieben 30. November 2009 Geschrieben 30. November 2009 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" ValidateRequest="true" %> INSERT INTO TAB1(Name) VALUES("L'oréal"); public int ValidateLogin(string UserName, string Password) { // Create Instance of Connection and Command Object SqlConnection myConnection = new SqlConnection(dbConnect); SqlCommand myCommand = new SqlCommand("uspValidateLogin", myConnection); // Mark the Command as a SPROC myCommand.CommandType = CommandType.StoredProcedure; // Add Parameters to SPROC SqlParameter paramUserName = new SqlParameter("@Username", SqlDbType.VarChar, 32); paramUserName.Value = UserName; myCommand.Parameters.Add(paramUserName); SqlParameter paramPassword = new SqlParameter("@Password", SqlDbType.VarChar, 32); paramPassword.Value = Password; myCommand.Parameters.Add(paramPassword); SqlParameter paramUserID = new SqlParameter("@myUserID", SqlDbType.Int, 4); paramUserID.Direction = ParameterDirection.Output; myCommand.Parameters.Add(paramUserID); myConnection.Open(); myCommand.ExecuteNonQuery(); myConnection.Close(); return (int)paramUserID.Value; } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.