Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# prepared语句中出错(插入到无效变量上的stopping中,我想用NULL替换它)_C#_Mysql_Validation_Prepared Statement - Fatal编程技术网

C# prepared语句中出错(插入到无效变量上的stopping中,我想用NULL替换它)

C# prepared语句中出错(插入到无效变量上的stopping中,我想用NULL替换它),c#,mysql,validation,prepared-statement,C#,Mysql,Validation,Prepared Statement,正在尝试使用prepStatement插入到具有多个列的数据库中。当我试图将insert插入准备好的语句时,忽略无效数字(替换为Null)并插入有效数字,我希望语句能够适应 string prepStatement = "INSERT INTO outright_data.sample (`date`,`last`, `lastqty`) VALUES(@date @last, @lastqty)"; _prepStmt.CommandText =

正在尝试使用prepStatement插入到具有多个列的数据库中。当我试图将insert插入准备好的语句时,忽略无效数字(替换为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\u var变量(但datetime\u var和last\u var被接受到它们的列中)。执行时,它会引发异常并停止代码。是否有办法在数据库中插入其他值并用NULL替换无效值(lastQty\u var)

我尝试使用
is
验证该变量(问题是,该变量是C#上的双精度变量,但在我的双精度列中不被接受,因此在C#types中验证没有多大帮助)

我希望避免大型验证结构,因为速度在整个过程中非常重要

有什么建议吗

谢谢

托马斯

试试这个解决方案


如果execute失败,那么您正试图满足它需要正确运行的要求

第一个值和第二个值之间缺少逗号基本上您想验证值是否为双精度?如果发生了插入?感谢您对缺少逗号的警告,但这只是一个复制/粘贴错误,在代码中没有问题。是的,我想验证,但我始终想插入,无效值将替换为NULLHi,感谢您的回复。这个线程不太适合我要做的事情,我希望查询总是运行,检测无效的输入字段(一个字段接一个字段),并用NULL替换它们。嗯。。。还有一件事,让我们假设您将实现您的目标,并且能够将坏值设置为“null”,那么如果字段不允许null呢?如果我在C#程序中进行验证,它可能会允许,但由于速度是关键,我想知道mysql是否能够按照我所想的方式处理这种类型的异常(并解释). 否则,我需要每秒验证7*200个值,这可能会对程序造成很大影响。。。