Veröffentlicht 24. November 200915 j 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
24. November 200915 j 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 200915 j von Ralf_01
24. November 200915 j und füge ihn dann der Datenbank hinzu. Und genau das wird doch sicher mit einem SQL-Insert gemacht...
24. November 200915 j 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 200915 j von realgun Edit sagt:
25. November 200915 j 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 & """)"
25. November 200915 j 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
30. November 200915 j <%@ 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; }
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.