如何按月在DataGridView中显示数据库

时间:2015-02-07 14:35:23

标签: c# 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;

谢谢:)

1 个答案:

答案 0 :(得分: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;