Здравствуйте! У меня возникла ошибка для функции обновления таблицы базы данных SQL.Ошибка:
Error: Operand type clash: text is incompatible with smallint
И я понятия не имею, что не так, нигде не должно быть значений типа int
.Все входные данные являются строками, а все типы столбцов таблицы являются текстовыми.Функция обновления такова:
public static void UpdateRows(string table, string columnToGet, string columnValueGet, string columnToSet, string columnValueToSet)
{
try
{
SqlConnection connection = new SqlConnection(Global.connectionString);
string updateString = "UPDATE " + table + " " + "SET " + columnToSet + "=" + columnValueToSet + " WHERE " + columnToGet + "=" + columnValueGet;
Console.WriteLine(updateString);
using (SqlCommand cmd = new SqlCommand(updateString, connection))
{
connection.Open();
cmd.Parameters.AddWithValue("@" + columnToSet, "'" + columnValueToSet + "'");
cmd.Parameters.AddWithValue("@" + columnToGet, "'" + columnValueGet + "'");
cmd.ExecuteNonQuery();
connection.Close();
}
}
catch (SqlException ex)
{
Console.WriteLine("Error: " + ex.Message);
throw;
}
}
Консоль выводит строку, подобную этой:
UPDATE parentDirectory SET Child1ID=50042 WHERE ParentID=10020
И тогда появляется ошибка.Что случилось?Я попытался добавить символы «» для переменных значения, а затем я получил другую ошибку.У меня есть функция вставки в том же формате где-то еще, и она работает нормально.Пожалуйста помоги.