我正在开发一个相当古老的应用程序,当时没有使用参数化查询。
sql
我必须在数据类型为表的列中插入日期时间值,date-time
此列中不允许空值。
我的代码。
var expires = dtpExpires.Enabled ? dtpExpires.Value.ToString() : "'1/1/1900 12:00:00 AM'";
string query = "INSERT INTO route (expires) Values ("+ expires +")";
这样做的问题是,当日期选择器被禁用时,必须传递一个默认值,因为不允许 null。因此,为此我必须包含一个额外''
的日期来包裹日期并且它可以正常工作。
但是,当启用日期选择器并且尝试将有效日期时间插入数据库时,由于缺少''
围绕expires
变量的包装,它会失败。
是否有任何干净的方法可以在没有参数化查询的情况下做到这一点。更新代码时会出现同样的问题。可以有一种干净的方法来处理这两种情况,而不是只添加if-else
子句。