C# – ASP.NET – Inserción de la Fecha de un calendario en una Base de datos

Estoy tratando de almacenar la fecha de un calendario en el que el usuario ha seleccionado en una base de datos.
No parece ser de insertarlo en la Base de datos de Access.
La base de datos de campo es de tipo Fecha/Hora y las variables que se muestran a continuación.
Sé que mi Consulta funciona porque el resto de la información almacena correctamente.

DateTime dtUserDate;
dtUserDate = calenderUserDate.SelectedDate;

string myQuery = "INSERT INTO MMK( Name, Email, Address, Town, County, PostCode, Country, Telephone, Date Joined)   VALUES ( '" + strName + "' , '" + strEmail + "' , '" + strAddress + "' , '" + strTown + "' , '" + strCounty + "' , '" + strPostCode + "' , '" + strCountry + "' , '" + strTeleNumber + "' , '" + dtUserDate+ "')";

Gracias

  • «Fecha de ingreso» no es un nombre de campo válido debido a que el espacio, que puede ser el problema, o tal vez sólo una parte de ella
  • Usted necesita leer en Inyección de SQL, debido a que su código actual es un problema de seguridad
InformationsquelleAutor user3045496 | 2013-11-28

1 Kommentar

  1. 1

    tratar con

    INSERT INTO MMK( Name, Email, Address, Town, County, PostCode, Country, Telephone, [Date Joined]) ....

    Nota que su columna de la tabla Date Joined teniendo espacio, uso [Date Joined]

    El uso de los Parámetros de la siguiente

    string myQuery = "INSERT INTO MMK( Name, Email, Address, Town, County, PostCode, Country, Telephone, [Date Joined])   VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    using (var cmd = new OleDbCommand(myQuery, con))
    {
        cmd.Parameters.AddWithValue("Name", strName);
        ....
        cmd.Parameters.AddWithValue("DateJoined", dtUserDate);
    • Muchas gracias los corchetes [] funcionado 🙂
    • Bueno, yo estaba pensando en algo como esto: SqlCommand cmd = new SqlCommand("INSERT INTO MMK(Name, Email, Address, Town, County, PostCode, Country, Telephone, [Date Joined]) VALUES(@Name, @Email, @Address, @Town, @County, @PostCode, @Country, @TeleNumber, @UserDate", conn); cmd.Parameters.Add("@Name", System.Data.SqlDbType.String).Value = strName; [...] cmd.Parameters.Add("@UserDate", System.Data.SqlDbType.DateTime).Value = calenderUserDate.SelectedDate;
    • el proveedor OLE DB .NET Proveedor no admite parámetros con nombre, por favor marque la documentación
    • no sabía eso, gracias
    • ( cc: @Dawid ) de la OMI que la página es un poco engañoso cuando dice que «el signo de interrogación (?) marcador de posición debe ser utilizado». He encontrado que nosotros puede uso @Names en lugar de ? mientras tenemos en cuenta que OleDb ignora los nombres y solo se basa en el posición de los parámetros en el CommandText, es decir, «el orden en el que OleDbParameter se agregan objetos a la OleDbParameterCollection debe corresponden directamente a la posición de la … marcador de posición para el parámetro en el comando de texto.»

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea