Я запускаю запрос из веб-формы для обновления записей. Поскольку я только что узнал о C#, я использую командную строку, а не хранимую процедуру.Ошибка синтаксиса SQL в строке C#
Мой метод обновления выглядит следующим образом:
public void updateOne()
{
string commandText = "update INVOICE SET <Redacted> = @<Redacted>,
Supplier = @Sup, SupplierName = @SupN, NetTotal = @Net,
VATTotal = @VAT, InvoiceDate = @InvDt "
<needed a line break here, which is why I split the string again>
+ "WHERE K_INVOICE = @K_INV";
using (SqlConnection dbConnection = new SqlConnection
(conParams.connectionString))
{
SqlCommand cmd = new SqlCommand(commandText, dbConnection);
cmd.Parameters.Add("@K_INV", SqlDbType.Int);
cmd.Parameters["@K_INV"].Value = @K_INV;
cmd.Parameters.AddWithValue("@<Redacted>", @<Redacted>.ToString());
cmd.Parameters.AddWithValue("@Sup", @Sup.ToString());
cmd.Parameters.AddWithValue("@SupN", @SupN.ToString());
cmd.Parameters.AddWithValue("@Net", @Net.ToString());
cmd.Parameters.AddWithValue("VAT", @VAT.ToString());
cmd.Parameters.AddWithValue("@InvDt", @InvDt.ToString());
try
{
dbConnection.Open();
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
errorString = e.Message.ToString();
}
}
}
Catch
киосков на ошибки SQL (Неправильный синтаксис около SET), и у меня есть идея о том, что проблема возникает потому, что преобразования параметров в строки. Первый параметр - Int, который должен быть в порядке.
Если это так, нужно ли преобразовать параметры в? Если нет, что на самом деле неправильно?
Является ли ваше имя столбца '' содержит '<>', что может быть проблемы в вашем запросе. –
Habib
вам не нужен символ '@' Literal в вашем втором параметре для addwithvalue. что '< >' используется в вашем Param ..? – MethodMan
@Habib no, это заполнитель, так как имя столбца может идентифицировать мою организацию – Wolfish