13

なぜVBがすべてをそんなに苦痛にするのか私にはわかりません。MySQLデータベースに保存するために必要な形式で日付と時刻を保存するフィールドがあります

 Dim AppDate As String = String.Empty
      If Not String.IsNullOrEmpty(Me.AppDate.Text.Trim) Then
         AppDate = Format(CDate(Me.AppDate.Text), "yyyy-MM-dd h:mm:ss")
      Else
        //Need to assign a null value to AppDate 
      End If

AppDate を DBNull のように NUll に割り当てる必要がありますが、直接行うことはできません。AppDate を Date に変更すると、必要な形式が得られません。

どんな助けでも大歓迎です。

前もって感謝します。

4

7 に答える 7

10

AppDate = 何も機能しないはずです。DateTime.MinValue を使用し、ビジネス ロジックを更新して適切に処理することもできます。

于 2010-03-05T22:27:14.613 に答える
9

AppDate = なし

于 2010-03-05T22:25:57.267 に答える
4

MySQL データベースに保存するために必要な形式の日付と時刻

データベースに保存する日時文字列を作成している場合は、すべて間違っています

MySql Connector/Net を使用すると、次のようにクエリを作成する必要があります。

Dim sql As String = "UPDATE `MyTable` SET `MyField` = @MyField WHERE `ID` = @MyID"
Using cn As New MySqlconnection("..your connection string here.."), _
      cmd As New SqlCommand(sql, cn)

    cmd.Parameters.Add("@MyField", MySqlDbType.DateTime).Value = MyDateTimeVar ''# NO FORMATTING NEEDED!
    cmd.Parameters.Add("@MyID", MySqlDbType.Int).Value = MyIDIntegerVar

    cn.Open()
    cmd.ExecuteNonQuery()
End Using
于 2010-03-08T22:21:46.373 に答える
0
AppDate = DbNull.Value 'does this work?
于 2010-03-06T12:46:11.863 に答える
0

メソッドによって返される文字列値はDbNull.ToString()空の文字列 ("") です。これは、DbNull の文字列表現が空の文字列であることを意味する場合があります。

于 2010-03-08T22:15:23.673 に答える
0

MySQL は、 connectionstring でオプションを設定NULLした場合にのみ、datetime の値を許可します。この値はデフォルトで に設定されています。ConvertZeroDateTime=Truefalse


MySql のドキュメントには次の内容が記載されています。

ConvertZeroDateTime (デフォルト: False ) :

True を指定すると、MySqlDataReader.GetValue() および MySqlDataReader.GetDateTime() は、許可されていない値を持つ date または datetime 列の DateTime.MinValue を返します。


AllowZeroDateTime (デフォルト: False ) :

True に設定すると、MySqlDataReader.GetValue() は、日時値がゼロなどの許可されていない値を持つ日付列または日時列に対して MySqlDateTime オブジェクトを返し、有効な値に対して System.DateTime オブジェクトを返します。False (デフォルト設定) に設定すると、すべての有効な値に対して System.DateTime オブジェクトが返され、ゼロの日時値などの許可されていない値に対して例外がスローされます。

于 2016-02-08T11:21:18.380 に答える