2012-10-02 189 views
2

我一直在用這個問題殺死腦細胞超過5小時。 如何正確地將日期從vb.net保存到mysql日期而不需要時間。如何將vb.net日期保存到mysql日期(不)0000-00-00

我已經試過多次建議,您的格式輸入之前的日期值,但它讓我同樣的結果例如:

Dim departDate As Date 
Dim d As String = Format(departDate, "05/05/2007") 

在我測試,並沒有工作我還是得到了0000-00-00

我已經試過:

Dim changeFormatDate As Date 
    Dim AddFechaListadoCasas2 as String 
    changeFormatDate = AddCasasListadoDatePicker.Text 
    AddFechaListadoCasas2 = changeFormatDate.ToString("yyyy-MM-dd") 

這仍然給我上的MySQL 0000-00-00

我也試過了這個例子:

Dim myDate as DateTime = DateTime.ParseExact(x, "yyyy-MM-dd", CultureInfo.CurrentCulture) 

,並試圖保存到MySQL仍然給了我0000-00-00

在我的節目我可是從一個日期選擇器抓取日期文本,然後它要等維護一個字符串並嘗試將其保存到數據庫中。如果有必要,我希望將它轉換爲MySQL所必需的格式爲yyyy-MM-dd的日期,但是我在上面完成的所有操作仍然顯示出令我沮喪的0000-00-00。

任何幫助將非常感激它。

獅子座

這裏是我的程序中的MySQL插入語句。

AddFechaListadoCasas2 = AddCasasListadoDatePicker.Text 
     AddFechaCierreCasas2 = AddFechaCierreCasas.Text 


SqlVentaCasas = "INSERT INTO VentaCasas (ID, Direccion, Ciudad_Municipio, Zona_Localidad, Barrio, " & _ 
            "Estatus, Precio, Unidad, Departamento, Conjunto, Estrato, Matricula_Inmobiliaria, Cedula_Catastral," & _ 
            "Escritura, Notaria, Ano, Area_Metros_2, Tipo_de_Construccion, Niveles, Habitaciones, Garajes," & _ 
            "Techo, Vista, Picina, Cocina_Integral, Bar, Cuarto_Bano_Servicio, Antejardin, Equipos," & _ 
            "Aire_Acondicionado, Detalles_addicionales, Estilo, Ano_Construccion, Orientacion, Banos, Parqueos," & _ 
            "Piso, Balcon, Jacuzzi_Sauna, Chimenea, Hall_Television, Zona_lavanderia, Patio, Accesorios," & _ 
            "Calefaccion, Administracion, Amenidades, Impuestos, Condiciones, Ocupacion," & _ 
            "Cuota_Administracion, Restricciones, Seguridad, Mostrar, Comision, Fecha_Listado, " & _ 
            "Agente_Cooperante, Fecha_Expiracion, CiudadEscritura, Agente, Licensia, Compania, NumeroPersonal," & _ 
            "NumeroCompania, NumeroFax, Email, AreaLotesM2, PrecioOriginal, Account_Creator, NumeroDias) VALUES ('" & _ 
            AddIDCasas2 & "','" & _ 
            AddDireccionCasas2 & "','" & AddCiudadCasas2 & "','" & AddZonaCasas2 & "','" & AddBarrioCasas2 & "','" & _ 
            AddEstatusCasas2 & "'," & AddPrecioCasas2 & ",'" & AddUnidadCasas2 & "','" & AddDepartamentoCasas2 & "','" & _ 
            AddConjuntoCasas2 & "'," & AddEstratoCasas2 & ",'" & AddMatriculaCasas2 & "','" & _ 
            AddCedulaCatastralCasas2 & "','" & AddEscrituraCasas2 & "','" & AddNotariaCasas2 & "'," & _ 
            AddAnoCasas2 & "," & AddMetros2Casas2 & ",'" & AddTipoConstruccionCasas2 & "'," & _ 
            AddNivelesCasas2 & "," & AddHabitacionesCasas2 & "," & AddGarajesCasas2 & ",'" & _ 
            AddTechoCasas2 & "','" & AddVistaCasas2 & "','" & AddPicinaCasas2 & "','" & AddCocinaIntegralCasas2 & "','" & _ 
            AddBarCasas2 & "','" & AddCuartoCasas2 & "','" & AddAnteJardinCasas2 & "','" & AddEquiposCasas2 & "','" & _ 
            AddAireAcondicionadoCasas2 & "','" & AddDetallesAddicionalesCasas2 & "','" & AddEstiloCasas2 & "'," & _ 
            AddAnoConstruccionCasas2 & ",'" & AddOrientacionCasas2 & "'," & AddBanoCasas2 & "," & _ 
            AddParqueoCasas2 & ",'" & AddPisoCasas2 & "','" & AddBalconCasas2 & "','" & AddJacuzziCasas2 & "','" & _ 
            AddChimeneaCasas2 & "','" & AddTVCasas2 & "','" & AddZonaLavanderiaCasas2 & "','" & AddPatioCasas2 & "','" & _ 
            AddAccesoriosCasas2 & "','" & AddCalefaccionCasas2 & "','" & AddAdministracionCasas2 & "','" & _ 
            AddAmenidadesCasas2 & "','" & AddImpuestosCasas2 & "','" & AddCondicionesCasas2 & "','" & _ 
            AddOcupacionCasas2 & "','" & AddCuotaAdministracionCasas2 & "','" & AddRestriccionesCasas2 & "','" & _ 
            AddSeguridadCasas2 & "','" & AddMonstrarCasas2 & "','" & AddComisionCasas2 & "','" & _ 
            AddFechaListadoCasas2 & "','" & AddAgenteCooperanteCasas2 & "','" & _ 
            AddFecdhaExpiracionCasas2 & "','" & _ 
            AddCiudadEscrituraCasas2 & "','" & AgenteNameCasas2 & "','" & _ 
            AgenteLicensiaCasas2 & "','" & AgenteCompaniaCasas2 & "','" & _ 
            AgentePersonalCasas2 & "','" & AgenteTelefonoCasas2 & "','" & _ 
            AgenteFaxCasas2 & "','" & AgenteEmailCasas2 & "'," & AddAreaLotesM2Casas2 & "," & AddPrecioOriginalCasas2 & ", '" & AgenteAccountCreatorCasas2 & "', 0);" 

AddFechaListadoCasas2和AddFecdhaExpiracionCasas2是包含了我想要輸入MySQL的

+0

什麼樣的數據類型,你有你的表列存儲日期? –

+0

@Cory在MySQL數據庫是日期格式是日期,在程序即時將它放在一個字符串,以便以後保存在MySQL,但它似乎我必須將該字符串轉換爲日期然後格式化並保存它。那是我沒有成功的部分。 – TopoX

+0

有沒有提到[Little Bobby Tables](http://xkcd.com/327/)? –

回答

2

您當前的查詢與SQL Injection脆弱的日期字符串。請使用帶參數的ADONet Object,如ConnectionCommand。更具體地說,因爲您使用的是MySQL,請使用MySQL Data provider。它會自動爲您輸入數據類型。

Dim query As String = "INSERT INTO tableName (dateColumn) VALUES (@dateParam)" 
Using conn As New MySqlConnection("connectionstringHere") 
    Using comm As New MySqlCommand() 
     With comm 
      .Connection = conn 
      .CommandText = query 
      .CommandType = Commandtype.Text 
      ' Assuming this is a DatePicker ' 
      .Parameters.AddWithValue("@dateParam", AddCasasListadoDatePicker.Value) 
     End With 
     Try 
      conn.Open() 
      comm.ExecuteNonQuery() 
     Catch(ex as MySqlException) 
      Msgbox(ex.Message.ToString()) 
     End Try 
    End Using 
End Using