mysql
  • database
  • vb.net
  • datetimepicker
  • 2013-11-15 80 views 0 likes 
    0

    我有两个datetimepicker,startDate存储datetimepicker1值和endDate存储datetimepicker2值。vb.net获取两个日期之间的数据库数据

    我想从数据库中的startDate和endDate之间获取数据。

    Dim bSql As String = "select date, sum(total_price) from bill where Date = '" & Format(startDate, "yyyy/MM/dd") & " and Date='" & Format(endDate, "yyyy/MM/dd") & "'" 
    

    我试过上面的代码,但它不能工作。任何人都可以帮助我?

    +0

    这将很容易受到SQL注入攻击。它实际上是乞求被黑客攻击。 –

    回答

    1

    试试这个,使用SQL BETWEEN运算符,它允许你指定一个范围的下限和上限。

    Dim bSql As String = "select date, sum(total_price) from bill where Date BETWEEN '" & startDate.ToString("yyyy/MM/dd") & "' AND '" & endDate.ToString("yyyy/MM/dd") & "' GROUP BY date;" 
    

    您还需要申请一个分组使用聚合函数 “SUM”:

    -- find all dates with sales and the total prices on each date 
    SELECT [date], SUM(total_price) AS [TotalPrice] 
    FROM bill 
    WHERE [date] BETWEEN '2013-01-01' AND '2013-12-31' -- use appropriate date format here 
    GROUP BY [date]; 
    
    +0

    附加信息:您的SQL语法有错误;检查对应于您的MySQL服务器版本的手册,以在第1行的'2013/11/15'附近使用正确的语法。 –

    +0

    出现此错误 –

    +0

    已修复!我不经常使用MYSQL :) – laylarenee

    0

    尝试格式化您的日期,像这样(你将需要使用的DateTimePicker的价值以及):

    Format(startDate.Value, "yyyy-MM-dd") 
    

    一个更好的选择是使用参数化查询,然后你不必格式日期转换成任何特定的格式。更多的信息在这里:How do I create a parameterized SQL query? Why Should I?

    0

    昏暗BSQL的String = “从法案,其中日期选择日期,金额(TOTAL_PRICE)=” & DateTimePicker1.Text & “及日期=” & DateTimePicker1.Text & “”

    设置日期时间选择器的日期格式。 我希望它对你有所帮助...

    2

    如果你想找一个日期的字符串格式,你已经失去了。试试这个:

    Dim bSql As String = "select date, sum(total_price) from bill where Date >= @startDate and Date < @endDate;" 
    Using cn As New MySqlConnection("connection string here"), _ 
         cmd As New MySqlCommand(bSql, cn) 
    
        cmd.Parameters.Add("@startDate", SqlDbType.DateTime).Value = startDate 
        cmd.Parameters.Add("@endDate", SqlDbType.DateTime).Value = endDate.AddDays(1) 
    
        cn.Open() 
    
        '... 
    
    End Using 
    

    没有格式要求或想要。

    1
    中数据的基础上

    我有DD/MM/YYYY 溶液是在VB MM/DD/YYYY

    这是一个代码,以使

    oldbc.CommandText =“从抗皱其中间日期选择* #10/09/2015#和#10/011/2015#“

    相关问题