如何在参数中指定默认值
本文关键字:默认值 参数 | 更新日期: 2023-09-27 18:04:49
我有下面的代码,这些代码将把访问数据库中的数据显示到另一种形式的文本框中。
item items = new item();
Add_Order addorder = new Add_Order();
OleDbCommand cmd = new OleDbCommand("Select * from tblItems WHERE ItemName = @Item", connection);
cmd.Parameters.AddWithValue("@Item", items.ItemName1);
cmd.Connection = connection;
connection.Open();
cmd.ExecuteNonQuery();
cmd.Parameters.AddWithValue("@ItemID", addorder.tbItemID.Text);
cmd.Parameters.AddWithValue("@ItemName", addorder.tbName.Text);
cmd.Parameters.AddWithValue("@ItemPrice", addorder.tbPrice.Text);
OleDbDataReader read = cmd.ExecuteReader();
while (read.Read())
{
addorder.tbItemID.Text = read[0].ToString();
addorder.tbName.Text = read[1].ToString();
addorder.tbPrice.Text = read[2].ToString();
}
addorder.ShowDialog();
connection.Close();
错误表明
参数@Item没有默认值
但我已经在中指定了@Item
的值
cmd.Parameters.AddWithValue("@Item", items.ItemName1);
我发现了一些错误,您正在检索一些项目。然后,为什么要使用ExecuteNonquery((和其他一些参数。只需尝试这个
cmd.Connection = connection;
connection.Open();
OleDbCommand cmd = new OleDbCommand("Select * from tblItems WHERE ItemName = @Item", connection);
cmd.Parameters.AddWithValue("@Item", items.ItemName1);
OleDbDataReader read = cmd.ExecuteReader();
while (read.Read())
{
addorder.tbItemID.Text = read[0].ToString();
addorder.tbName.Text = read[1].ToString();
addorder.tbPrice.Text = read[2].ToString();
}
connection.Close();
确保项目。ItemName1具有有效条目。您可以通过将一些值作为手动传递来验证这一点
cmd.Parameters.AddWithValue("@Item", "some text");
试试这个:
cmd.Parameters.AddWithValue("@Item", OleDbType.VarChar).Value = items.ItemName1;
为什么在ExecuteNonQuery()
..之后还要再次使用它。。?
cmd.Parameters.AddWithValue("@ItemID", addorder.tbItemID.Text);
cmd.Parameters.AddWithValue("@ItemName", addorder.tbName.Text);
cmd.Parameters.AddWithValue("@ItemPrice", addorder.tbPrice.Text);
cmd.Parameters.Add(new OleDbParameter("item", OleDbType.VarChar, 32, "Item").Value = items.ItemName1;
^^^^^^^^^^^^^^^^^^
重点是构造Parameter((