Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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
C# 有什么方法可以让我从SQLC数据库中检索一年中任何月份的所有记录吗_C# - Fatal编程技术网

C# 有什么方法可以让我从SQLC数据库中检索一年中任何月份的所有记录吗

C# 有什么方法可以让我从SQLC数据库中检索一年中任何月份的所有记录吗,c#,C#,只需点击一个按钮,我就成功地获得了今天的所有销售交易记录。下面是我的代码 con.Open(); string query = "select Date Transactioncode, Productname, Total FROM Stock WHERE Date >= CAST(GETDATE() AS DATE) ORDER BY Date DESC"; SqlDataAdapter SDA = new SqlDataAdapter(query, con); DataTable d

只需点击一个按钮,我就成功地获得了今天的所有销售交易记录。下面是我的代码

con.Open();
string query = "select Date Transactioncode, Productname, Total FROM Stock WHERE Date >= CAST(GETDATE() AS DATE) ORDER BY Date DESC";
SqlDataAdapter SDA = new SqlDataAdapter(query, con);
DataTable dt = new DataTable();
SDA.Fill(dt);
dataGridView1.DataSource = dt;
con.Close(); 
我遇到的问题是如何获取我希望搜索的月份或任何月份和年份的所有销售交易。我使用2个组合框来选择月份和年份,以便从SQLDatabase获取记录。下面是我尝试过的代码,这些代码不断产生错误

con.Open();
string query = "SELECT * FROM Stock WHERE Month(Date) = '"+comboMonth.Text+"' AND Year(Date) = '"+comboYear.Text+"'";
SqlDataAdapter SDA = new SqlDataAdapter(query, con);
DataTable dt = new DataTable();
SDA.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
这是我得到的错误:将varchar值“一月”转换为数据类型int时,转换失败


请帮忙

我会在SQL端这样做,因为那里有函数以任何形式呈现日期,您可以与之进行比较。这可能不是最有效的查询

将日期呈现为字符串将允许使用“like”和我一直喜欢的索引ISO YYYY-MM-DD HH:MM:SS.ssss,或者现在也允许对函数表达式进行索引


对于仅一年一个月的时间,您应该计算日期时间的第一秒和最后一秒/天,并对日期时间值进行范围扫描,这既更有效,也不利于散列排序索引。有些日期类型是日粒度,有些是日期时间。当然,一天的确切结束时间会因夏令时等不同而有所不同,一天三班倒,一班一班地做查询真是一团糟

它产生了什么错误?抛开明显的SQL注入问题不谈,深入到核心问题:如何比较或生成要在SQL查询中使用的选定日期,这个问题将得到很大改善。你在这个问题上做过研究吗?你的研究表明了什么?你遇到了什么错误。。。我花了好几天的时间研究这个问题,但都解决不了。我在网上看到过其他程序,它们从comboBox1.text中填充当月记录。这是我在将varchar值“一月”转换为数据类型INT时收到的错误消息。该错误消息是否为您提供了一个关于您必须执行操作的大提示?SQL不会将日期从5月转换为5月。永远不要将文本粘在一起进行查询。只是随便猜测一下,使用以下方法:字符串query=SELECT*FROM Stock,其中MonthDate=+comboMonth.Value+和YearDate=+comboYear.Value;