我正在开发销售点系统。
我的问题是:我需要按月显示我的数据库,但我的代码无效。
我的代码是:
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 :(得分: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;