【发布时间】:2016-10-13 07:08:53
【问题描述】:
我正在尝试制作 c# 程序,我必须在其中制作要在 datagridview 上预览的数据库报告。将使用 datetimepicker 选择数据。我已经编写了代码,它可以工作,但是如果选择的日期是不同的月份。没有记录出现
void FilterDBbtnClick(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection();
conn = new MySqlConnection(cs);
string data = "SELECT `Date`, `Process`, `Actual`, `Target` FROM `database` WHERE `Date` BETWEEN '"+this.fromDatePicker.Value+"' AND '"+this.toDatePicker.Value+"' order by `Date` desc";
MySqlCommand cmd = new MySqlCommand(data, conn);
cmd.Connection.Open();
try
{
MySqlDataAdapter sda = new MySqlDataAdapter();
sda.SelectCommand = cmd;
DataSet dt = new DataSet();
sda.Fill(dt);
BindingSource bsource = new BindingSource();
bsource.DataSource = dt;
mondeDataTable.DataSource = dt.Tables[0];
sda.Update(dt);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
cmd.Connection.Close();
}
请帮我检查我的代码并告诉我可能有什么问题或遗漏。
【问题讨论】:
-
检查什么是 sql 注入,也使用调试看看为什么没有任何反应。你也应该处理你的 MySqlDataAdapter。
-
您的
Date格式和fromDatePicker.Value格式是什么。如果它们不同,例如 '2016-10-13 00:00:00.000' 和 '2013-10-13 09:50:00.000',查询可能返回 0 行. -
我已将其设置为仅日期,不包括时间。
-
调试您的代码并在 Db 中运行您的查询变量结果
-
我也尝试过,同样的事情发生了,每当我写不同的月份时,都不会出现数据。有选择不同月份的代码吗? is between 不适用吗?
标签: c# mysql datagridview