2014-03-12 33 views
0

我仍然不习惯于c#编程,特别是在SQL中。错误状态:未提供参数化查询

的参数化查询 '(@ProdNo VARCHAR(8000))DELETE FROM [订购] WHERE ProdNo = @ProdN' 预计参数 '@ProdNo',但未提供。

我不知道该怎么做。我需要帮助。谢谢!

public void DeleteRecord() 
{ 
      SqlCommand cmd = new SqlCommand("DELETE FROM [ORDER] WHERE ProdNo = @ProdNo", myCon); 
      cmd.Parameters.Add("@ProdNo", SqlDbType.VarChar).Value = username; 

      myCon.Open(); 
      cmd.ExecuteNonQuery(); 
      myCon.Close(); 
     } 
+1

误差约'@ prodN'会谈?或者它只是一个错字?但是,如上所述,查询似乎是正确的(除了违反直觉的事实,即ProdNo =用户名) – Steve

+0

就是这样!它应该是ProdNo = ProdNo。谢谢你,先生! – YellowSubmarine

回答

1

由于ProdNo似乎是字符值,而不是一个数字,改变你的SQL,SQL 报价的值,如:

DELETE FROM [ORDER] WHERE ProdNo = '@ProdNo'

+0

谢谢先生!我花了很多时间来解释这一点,感谢您的帮助!对不起,我的初学者错误:) – YellowSubmarine

+1

@YellowSubmarine它发生在我们所有人和给予的警告是没有什么帮助。 :-) – OmegaMan