Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用select查询选择月()和年()_Sql_Vb.net_Ms Access - Fatal编程技术网

Sql 如何使用select查询选择月()和年()

Sql 如何使用select查询选择月()和年(),sql,vb.net,ms-access,Sql,Vb.net,Ms Access,基本上,我想运行一个查询,将输入的数据拉入VB表单(特别是月份和年份) 这就是我目前拥有的: SELECT * FROM orders WHERE MONTH(date_ordered) = ? AND YEAR(date_ordered) = ? ; 当我在数据库中运行它时,它不起作用。我没有结果 但是,如果我这样说: SELECT * FROM orders WHERE MONTH(date_ordered) = 08 AND YEAR(date_ordered) = 1989; 它工作

基本上,我想运行一个查询,将输入的数据拉入VB表单(特别是月份和年份)

这就是我目前拥有的:

SELECT * FROM orders WHERE MONTH(date_ordered) = ? AND YEAR(date_ordered) = ? ;
当我在数据库中运行它时,它不起作用。我没有结果

但是,如果我这样说:

SELECT * FROM orders WHERE MONTH(date_ordered) = 08 AND YEAR(date_ordered) = 1989;
它工作得很好,达到了预期的效果。显然,由于我使用的表单是用户自己输入“月”和“年”,这使得事情有点棘手

我错过了什么?为任何想法干杯

注意:date_ordered字段是一个短日期格式的日期/时间字段。

这可能会对您有所帮助

Dim sql As String = "SELECT * FROM orders WHERE MONTH(date_ordered) = @mon and YEAR(date_ordered) = @year"
Using cn As New SqlConnection("Your connection string here"), _
        cmd As New SqlCommand(sql, cn)

        cmd.Parameters.Add("@mon", SqlDbType.VarChar, 50).Value = textBox1.text
        cmd.Parameters.Add("@year", SqlDbType.VarChar, 50).Value = textBox2.text
        Return cmd.ExecuteScalar().ToString()
End Using

决定你使用的是什么数据库,并适当地标记你的问题。因为这两种产品有不同的方法来做到这一点…道歉;意外!正在对MS Access数据库使用SQL查询。我看不出您的问题。假设您有一个名为textBoxMonth的月份文本框,那么您的sql将是“SELECT*from orders,其中month(date_ordered)=”+textBoxMonth.text但使用参数当然会更安全