2015-02-07 65 views
0

我正在开发Point of Sales系统。如何在DataGridView中按月显示数据库

我的问题是:我需要按月显示我的数据库但我的代码不工作。

我的代码是:

sql = "select * from POS where iDate = '" + DateTime.Now.ToString("M/d/yyyy") + "'"; 
     da = new OleDbDataAdapter(sql, con); 
     dt.Clear(); 
     da.Fill(dt); 
     dataGridView1.DataSource = dt; 

谢谢:)

+0

你是什么意思“按月显示”?目前还不清楚你在做什么,你可以展示一个数据的例子,你想从中获得什么以及你现在得到什么? – 2015-02-07 15:12:32

+0

你能不能定义'不工作'?你没有得到你想要的结果?没有得到任何结果呢?发生异常?完整的细节将有助于获得答案。 – 2015-02-08 03:03:17

回答

1

你不应该创建SQL查询这样的,这是非常不安全的。而是使用OleDbCommand构造函数。要选择特定月份/年份的日期,您可以使用DATEPART。下面是我写得很快的东西,所以没有经过测试。你可能需要调整一下。

OleDbDataAdapter adapter = new OleDbDataAdapter(); 
OleDbCommand command; 

// Create the SelectCommand. 
command = new OleDbCommand("SELECT * FROM POS " + 
          "WHERE DATEPART(m, iDate) = @Month "+ 
          "AND DATEPART(yyyy, iDate) = @Year", con); 

command.Parameters.AddWithValue("@Month", 2); 
command.Parameters.AddWithValue("@Year", 2015); 

adapter.SelectCommand = command;