首页 > 解决方案 > Vb.Net - 使用 MySQL 存储过程的 DATE_FORMAT 上的“字典中不存在给定的键”

问题描述

我正在使用带参数的 MySQL 存储过程并从 vb.net winforms 应用程序调用它。

这是我在 VB 中的称呼:

    Try
        sqlConn.Open()

        Dim cmd As New MySqlCommand("SP_DAILY", sqlConn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.AddWithValue("@serial", txtSerial.Text)
        cmd.Parameters.AddWithValue("@datefrom", dtpFrom.Value)
        cmd.Parameters.AddWithValue("@dateto", dtpTo.Value)

        Dim rdr As MySqlDataReader = cmd.ExecuteReader
        If rdr.HasRows Then
            While rdr.Read
                Console.WriteLine(rdr(0) & " - " & rdr(1) & " - " & rdr(2))
            End While
        Else
            Console.WriteLine("Serial not found")
        End If

    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        sqlConn.Close()
    End Try

这是存储过程:

    SELECT 
        Name, 
        SerialNo, 
        DATE_FORMAT(datetime, '%Y/%m/%d') AS Date
    FROM table t 
    WHERE date(dateTime) BETWEEN datefrom AND dateto 
        AND SerialNo = serial

我尝试删除 Date_format 并且效果很好,但我想将日期格式化为上述格式。

我也尝试过使用 DATE(datetime) 但我没有得到正确的格式。

PS。当使用 CALL SP_DAILY (参数)在 MySQL 本身中调用存储过程时,存储过程工作正常,但从 VB 调用它时出现错误。我想知道为什么在使用 DATE_FORMAT 函数并从 VB 调用它时会发生错误。

标签: mysqlvb.net

解决方案


推荐阅读