0

これは私が持っているものです:

Dim UsDateFormat As Date = DateTime.Parse(DataDate, New System.Globalization.CultureInfo("en-US")) 

Da = New OleDbDataAdapter("SELECT * FROM RawStockData WHERE PointDateTime >=#" & UsDateFormat.ToShortDateString & "# AND PointDateTime < #" & UsDateFormat.AddDays(1).ToShortDateString & "#", Con)

9 月の任意の日付を選択すると、30 日のデータ (データがある唯一の日) が表示され、30 日を選択すると、「文字列は有効な DateTime として認識されませんでした」という応答が返されます。

どこが間違っていますか?

4

4 に答える 4

0

おそらく、あなたの問題はDataTime.ParseExactを使用して解決されるでしょう。

ParseExact を試した後、SqlCommand パラメータを使用して、Date と DateTime に関するすべての SQL エラーを回避してください。

サンプルコード:

Dim strYourData As String = "2013/10/02"
Dim dtYourData As DateTime = DateTime.ParseExact(strYourData, "yyyy/MM/dd", Nothing)

Dim cmdSelectRawStockData As System.Data.OleDb.OleDbCommand = yourOLEConnection.CreateCommand
cmdSelectRawStockData.CommandText = "SELECT * FROM RawStockData WHERE " _
    & "PointDateTime >= @YourData1 AND " _
    & "PointDateTime <= @YourData2"

cmdSelectRawStockData.Parameters.AddWithValue("@YourData1", SqlDbType.DateTime).Value = dtYourData
cmdSelectRawStockData.Parameters.AddWithValue("@YourData2", SqlDbType.DateTime).Value = DateAdd(DateInterval.Day, 1, dtYourData)

Da = New System.Data.OleDb.OleDbDataAdapter(cmdSelectRawStockData)
于 2013-10-02T12:19:05.013 に答える
0

以下のコードとその逆を使用

Dim dt As DateTime = DateTime.ParseExact(InputBookingdatesingleday.Text,
                                         "dd/MM/yyyy",
                                         CultureInfo.GetCultureInfo("en-GB"))

Dim dt As DateTime = DateTime.ParseExact(InputBookingdatesingleday.Text,
                                         "dd/MM/yyyy",
                                         CultureInfo.GetCultureInfo("en-US"))
于 2013-10-02T12:19:18.333 に答える
0

めんどくさいけど使った

 Da = New OleDbDataAdapter("SELECT * FROM RawStockData WHERE PointDateTime >=#" & DataDate.Date.Month.ToString & "/" & DataDate.Date.Day.ToString & "/" & DataDate.Date.Year.ToString & "# AND PointDateTime <#" & DataDate.AddDays(1).Date.Month.ToString & "/" & DataDate.AddDays(1).Date.Day.ToString & "/" & DataDate.AddDays(1).Date.Year.ToString & "#", Con)

最終的には。

于 2013-10-02T13:07:50.540 に答える