c# - MS Access 中带有日期类型参数的 SQL 语句
问题描述
我有一个用于在 MS Access 中查询的 SQL 语句。我想得到日期之间的交易结果。
这是我的代码:
DateTime pFromNew = Convert.ToDateTime(this.dateTimePicker1.Value.ToString("yyyy-MM-dd"));
DateTime pToNew = Convert.ToDateTime(this.dateTimePicker2.Value.ToString("yyyy-MM-dd"));
string pFrom = "#" + pFromNew.ToString() + "#";
string pTo = "#" + pToNew.ToString() + "#";
chrTrans.Series["Class"].Points.Clear();
oconn.Open();
OleDbCommand cmd = oconn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select ClassType,Nametree,TransWeight,Valuedate from tblTrans where Nametree = '" + this.cboNametree.Text.Trim() + "' and valuedate between '" + pFrom + "' and '" + pTo + "'";
//+ "' and valuedate between '"+ this.dateTimePicker1.Text +"' and '"+ this.dateTimePicker2.Text +"'";
cmd.ExecuteNonQuery();
这个说法有什么问题?
我总是收到这个错误:
标准表达式中的数据类型不匹配。
解决方案
你把这弄得太复杂了,来回转换了三遍。
它可以简化为:
string pFrom = "#" + this.dateTimePicker1.Value.ToString("yyyy'/'MM'/'dd") + "#";
string pTo = "#" + this.dateTimePicker2.Value.ToString("yyyy'/'MM'/'dd") + "#";
// snip
cmd.CommandText = "Select ClassType,Nametree,TransWeight,Valuedate from tblTrans where Nametree = '" + this.cboNametree.Text.Trim() + "' and valuedate between " + pFrom + " and " + pTo + "";
推荐阅读
- javascript - 我的 JavaScript 异步函数使用 webpack 执行了两次
- templates - 模板化方法相互依赖
- c# - 有谁知道为什么系统和控制台在这里不起作用?
- javascript - 动态构建对象
- css - WooCommerce 店面标题:左侧的汉堡图标,右侧的搜索栏
- javascript - 使用 json 的依赖下拉列表
- azure - Azure 测试中心中的测试配置如何中继到 Azure 发布管道
- flutter - Flutter 公交车座椅布局设计
- sql-server - 比较 CronExpression 和实际时间以知道是否执行
- javascript - Ionic Native SQLite 插件:如何检查现有数据库是否为空?