参数缺少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); }