Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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/string/5.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# 有人能解释一下这个System.ArgumentException错误是什么意思吗?_C#_Database_Razor_Webmatrix - Fatal编程技术网

C# 有人能解释一下这个System.ArgumentException错误是什么意思吗?

C# 有人能解释一下这个System.ArgumentException错误是什么意思吗?,c#,database,razor,webmatrix,C#,Database,Razor,Webmatrix,我有以下代码: //check if the user have any previous medical record. var firstMedical = false; var sql="SELECT * FROM Medical WHERE CDSID = @0"; var myMedical = db.QuerySingle(sql1, myCDSID); if (myMedical ==null){ //if all the

我有以下代码:

//check if the user have any previous medical record.
var firstMedical = false;
    var sql="SELECT * FROM Medical WHERE CDSID = @0";
    var myMedical = db.QuerySingle(sql1, myCDSID);
    if (myMedical ==null){

                //if all the medical data is filled in, run sql1 to store all the answer into a database.
                var sql10 = "INSERT INTO Medical (Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Alcohol, Medication, Details, CDSID) VALUES (@0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17, @18, @19, @20, @21, @22, @23)";
                var medquestionnaire = new{q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, alcohol, medication, details, myCDSID};
                db.Execute(sql10, medquestionnaire);

    } else {

                var sql2 = "UPDATE Medical SET Q1=@0, Q2=@1, Q3=@2, Q4=@3, Q5=@4, Q6=@5, Q7=@6, Q8=@7, Q9=@8, Q10=@9, Q11=@10, Q12=@11, Q13=@12, Q14=@13, Q15=@14, Q16=@15, Q17=@16, Q18=@17, Q19=@18, Q20=@19, Alcohol=@20, Medication=@21, Details=@22 WHERE CDSID=@23";
                var updquestionnaire = new{q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, alcohol, medication, details, myCDSID};
                db.Execute(sql2,updquestionnaire); //error is highlighted on this line.

     }
错误突出显示在
db.Execute(sql2,upd3)上

错误是:

Exception Details: System.ArgumentException
 : No mapping exists from DbType <>f__AnonymousType0`24[System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Object]
   to a known SqlCeType.
异常详细信息:System.ArgumentException :DbType f__AnonymousType0`24不存在映射[System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Object] 到一个已知的SqlCeType。

我不明白这个错误的含义,Webmatrix也没有真正清楚地解释这个错误。我应该如何解释这个错误,并修复它?

因为db.Execute需要一个对象数组作为第二个参数,请尝试更改
新的
语句来显式创建一个对象数组。例如乐

var updquestionnaire = new object[] {q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, alcohol, medication, details, myCDSID};

由于db.Execute需要一个对象数组作为第二个参数,请尝试更改
new
语句以显式创建一个对象数组。例如,类似以下内容

var updquestionnaire = new object[] {q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, alcohol, medication, details, myCDSID};

您是否尝试直接在执行行上传递所有变量?我想尝试…但我发现了错误您是否尝试直接在执行行上传递所有变量?我想尝试…但我发现了错误