参数缺少C#,MYSQL(VS 2010)

参数缺少C#,MYSQL(VS 2010),c#,mysql,visual-studio-2010,C#,Mysql,Visual Studio 2010,在这里输入code我遇到了缺少参数“@comment”的错误。但是,我确信它不是一个空值,我已经将所有必要的值传递到相应的参数中 在扫描代码数小时后,我确信我的SQL命令没有丢失错误所述的“@comment” 主程序将调用下面的方法,并将相应的值传递给该方法。基于这些属性值,它将调用要使用的8个sql命令中的1个 在这种情况下有什么建议吗?谢谢 在将属性值传递给方法之前,我使用以下代码验证属性值 //-------Checklist 5------- itemID = "dnaI

在这里输入code
我遇到了缺少参数“@comment”的错误。但是,我确信它不是一个空值,我已经将所有必要的值传递到相应的参数中

在扫描代码数小时后,我确信我的SQL命令没有丢失错误所述的“@comment”

主程序将调用下面的方法,并将相应的值传递给该方法。基于这些属性值,它将调用要使用的8个sql命令中的1个

在这种情况下有什么建议吗?谢谢

在将属性值传递给方法之前,我使用以下代码验证属性值

//-------Checklist 5-------
        itemID = "dnaIN"; type = "in";
        if (string.IsNullOrEmpty(lblD5.Text) == false)
        { objR.CheckBy = lblD5.Text; }
        else if (string.IsNullOrEmpty(lblD5.Text) == true)
        { objR.CheckBy = "0"; }

        if (string.IsNullOrEmpty(lblV5.Text) == false)
        { objR.VerifiedBy = lblV5.Text; }
        else if (string.IsNullOrEmpty(lblV5.Text) == true)
        { objR.VerifiedBy = "0"; }

        if (string.IsNullOrEmpty(lblsbC.Text) == false) // check if user type comments
        { objR.Comment = lblsbC.Text; }
        else
        { objR.Comment = "0"; }
        update = objR.update(formID, itemID, type);
//----------传递到下面的代码----------


显然,代码中的最后两行对错误消息很重要。
只有当
\u comment
“0”
时,
@comment
才会丢失
如果您总是要传递
@注释
,请将其更改为:

if (_Comment != "0")
    { cmd1.Parameters.AddWithValue("@comment", _Comment); }
else
    { cmd1.Parameters.AddWithValue("@comment", null); }

你的
SqlCommand
在结尾是什么样子的?你说的“看结尾”是什么意思@Soner Gonulcon.Open();cmd1.ExecuteOnQuery();康涅狄格州关闭();不,不是那样的。调试代码时,在执行之前,调试器中的
cmd1
是什么样子?(在
cmd1.ExecuteNonQuery()
line之前)参数化查询“(@formID int,@userName nvarchar(10),@computerName nvarchar(13),@”需要未提供的参数“@comment”。您是指此错误消息吗?但在传入之前,我进行了验证以检查“comment”是否为空。如果为空,我将“0”传递给“comment”告诉方法。从这里开始,我将使用if-else()并在查询中使注释=NULL。这是否正确?在检查表中,您告诉它“如果为NULL,将其设置为零”。然后在执行过程中,您说“如果不是零,将其作为参数传递”。您从未告诉过它如果为零该怎么办,如果检查表中为空,就是这种情况。因此,我的回答将确保即使用户没有键入任何内容,也始终存在参数
@comment
。这是真的。但我做了下面的代码,告诉它如果为“0”该怎么办,否则如果(_CheckBy!=“0”&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&“out”){cmd1=new SqlCommand(“UPDATE SystemOut SET CheckBy=@CheckBy,VerifiedBy=@VerifiedBy,Comment=NULL,其中FormID=@FormID和ItemID=@ItemID”,conn”);它执行相同的检查/验证操作,对吗?无论如何,我根据您的建议编辑了代码。但我仍然遇到了相同的错误。有关于如何修复此问题的提示吗?
if (_Comment != "0")
    { cmd1.Parameters.AddWithValue("@comment", _Comment); }
else
    { cmd1.Parameters.AddWithValue("@comment", null); }