【发布时间】:2017-11-12 02:47:51
【问题描述】:
我基本上是想让这个 sql 语句为 ZipCode 或单词 DEFAULT 设置一个值。
public static void AddEmployee(SB oSB)
{
string sSql = "INSERT INTO Employee (EmployeeID,ZipCode) " +
"VALUES (@EmployeeID,@ZipCode); " ;
SqlCommand cmd = new SqlCommand(sSql, GetConnection());
cmd.Parameters.AddWithValue("@EmployeeID", oSB.EmployeeID);
string sZipCode = (oSB.ZipCode == "") ? "DEFAULT":oSB.ZipCode;
cmd.Parameters.AddWithValue("@ZipCode", sZipCode);
...
}
这不起作用,因为单词 DEFAULT 是一个字符串,而不是 RESERVED WORD DEFAULT
所以...我从之前提出的问题中看到,我不能使用 RESERVED WORD DEFAULT 作为值。我还看到了你可以在哪里重写 SQL……这可行,但可能会因为多个字段而变得麻烦。
【问题讨论】:
-
哪个 RDBMS?当您想传递默认值时,您始终可以将 sql 命令更改为“INSERT INTO Employee (EmployeeID)”+“VALUES (@EmployeeID);。您是否尝试过不为默认参数传递任何内容,这可能有效?检查一下帖子:stackoverflow.com/questions/8777362/…
-
@Chris - 为什么你认为这行不通。你有没有尝试过?只要
@ZipCode参数在您的数据库中是字符串,它就应该可以工作。运行代码 sn-p 时遇到什么错误? -
微软数据库。
-
@RBT 这是一个很好的复制人选......
标签: c# sql-server