尝试使用 prepStatement 插入具有多列的数据库。当我尝试插入 INSERT INTO 准备好的语句时,我希望语句能够适应,忽略无效数字(用 Null 替换)并插入有效数字
string prepStatement = "INSERT INTO outright_data.sample (`date`,`last`, `lastqty`) VALUES(@date @last, @lastqty)";
_prepStmt.CommandText = prepStatement;
if (frun)
{
_prepStmt.Parameters.AddWithValue("@date", datetime_var);
_prepStmt.Parameters.AddWithValue("@last", last_var);
_prepStmt.Parameters.AddWithValue("@lastqty", lastQty_var);
_prepStmt.Prepare();
frun = false;
}
else
{
_prepStmt.Parameters["@date"].Value = datetime_var;
_prepStmt.Parameters["@last"].Value = last_var;
_prepStmt.Parameters["@lastqty"].Value = lastQty_var;
}
i++;
_counter += _prepStmt.ExecuteNonQuery();
想象一下 mySQL 表的 lastQty
列中不接受 lastQty_var 变量(但 datetime_var 和 last_var 被接受到它们的列中)列。当我执行时,它会引发异常并停止代码。有没有办法在数据库中插入其他值并用 NULL 替换无效值(lastQty_var)?
我尝试使用 is
验证变量(问题是,该变量在 C# 上是 double 型,但在我的双列中不被接受,因此在 C# 类型中验证没有太大帮助);
我想避免大型验证结构,因为速度在整个过程中非常重要。
有什么建议吗?
谢谢
托马斯
最佳答案
尝试这个解决方案 https://stackoverflow.com/a/19870942/7457316
如果执行失败,那么您正在尝试满足直接运行所需的内容
关于c# - 准备好的语句中出现错误(INSERT INTO 在无效变量上停止,我想将其替换为 NULL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41901641/