AM尝试更新该查询中的日期我在UPDATE语句中收到此错误语法错误。这是我的代码
Updated Code
OleDbCommand top = new OleDbCommand(
"UPDATE NewInvoice_1 SET (" +
"Terms=?, [InvoiceDate]=?, OurQuote=?," +
"SalesPerson=?, CustomerName=?, OrderNumber=?," +
"InvoiceAddress=?, DeliveryAddress=?," +
"WholeDiscountP=?, WholeDiscountA=?, ShippingP=?, ShippingA=?," +
"Price=?, Discount=?, Tax=?," +
"Shipping=?, GrandTotal=?, TaxforDisc=?, DiscountType=?," +
"ShippingBy=?, ShipReferenceNo=?, IsInsured=?, Notes=?," +
"[DueDate]=?, AmountinWords=? ) WHERE InvoiceId=?", conn);
top.Parameters.AddWithValue("?", CBL_Terms.EditValue.ToString());
top.Parameters.AddWithValue("?", CBL_Date.DateTime);
top.Parameters.AddWithValue("?", TXE_OurQuote.Text);
top.Parameters.AddWithValue("?", CBL_Sales_Person.EditValue.ToString());
top.Parameters.AddWithValue("?", CBL_Customer_Name.EditValue.ToString());
top.Parameters.AddWithValue("?", TXE_Order_Number.Text);
top.Parameters.AddWithValue("?", TXE_Invoice_Address.Text);
top.Parameters.AddWithValue("?", TXE_Delivery_Address.Text);
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_FlatDiscountP.Text));
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_FlatDiscountA.Text));
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_ShippingPercentage.Text));
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_ShippingAmount.Text));
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_SubTotal.Text));
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_Discount.Text));
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_Tax.Text));
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_Shipping.Text));
top.Parameters.AddWithValue("?", Convert.ToDecimal(TXE_GrandTotal.Text));
top.Parameters.AddWithValue("?", barCheckItem1.Checked);
top.Parameters.AddWithValue("?", selectedItem);
top.Parameters.AddWithValue("?", TXE_Shipping_By.Text);
top.Parameters.AddWithValue("?", TXE_Reference_No.Text);
top.Parameters.AddWithValue("?", CBX_Is_Insured.Checked);
top.Parameters.AddWithValue("?", TXE_Notes.Text);
top.Parameters.AddWithValue("?", CBL_DueDate.DateTime);
top.Parameters.AddWithValue("?", TXE_AmountinWords.Text);
top.Parameters.AddWithValue("?", TXE_Unvisible.Text);
top.ExecuteNonQuery();
现在我将代码更新为参数,但在更新代码时出现语法错误
答案 0 :(得分:0)
使用参数。 放?对于每个参数值。添加参数值时使用相同的顺序。
string sql = "UPDATE NewInvoice_1 SET Terms =?, [InvoiceDate]=?, OurQuote=? ... WHERE InvoiceId=?";
using (var command = conn.CreateCommand())
{
command.CommandText = sql;
command.Parameters.Add(CBL_Terms.EditValue.ToString());
command.Parameters.Add(CBL_Date.DateTime);
command.Parameters.Add(TXE_OurQuote.Text);
//add all other fields keeping order
command.ExecuteNonQuery();
}
旁注 - 您不应该在表单中执行或保留查询。 此外,如果您使用适配器,您可以使用以下语法添加参数:
command.Parameters.Add(adapter.Parameter(value));