【发布时间】:2012-11-27 05:57:18
【问题描述】:
我正在开发一个相当古老的应用程序,当时没有使用参数化查询。
我必须在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 子句。
【问题讨论】:
-
在旁注中,不想使用参数化查询的原因是什么?
-
@FrederikGheysels 这是一个旧应用程序,为了统一,不能只在一个地方使用参数化查询。要么我们将整个应用程序完全迁移到它上面,要么照原样携带这个东西:(。
标签: c# datepicker