Обновление запроса при сравнении строки и varchar (max)

У меня есть запрос на обновление следующим образом:

public void Update_Download(string _url){ Data.Connect(); using (Data.connexion) { string queryString = "update Fichier set [email protected] , Downloads_count= Downloads_count + 1 where Url = @url "; SqlCommand command = new SqlCommand(queryString, Data.connexion); command.Parameters.AddWithValue("@last", DateTime.Now); command.Parameters.AddWithValue("@url", _url); try { SqlDataReader reader = command.ExecuteReader(); } catch { } } } } } 

строковое соединение:

 public static SqlConnection connexion; public static bool Connect() { System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(); builder["Initial Catalog"] = "Upload"; builder["Data Source"] = "bd"; builder["integrated Security"] = true; string connexionString = builder.ConnectionString; connexion = new SqlConnection(connexionString); try { connexion.Open(); return true; } catch { return false; } } public static void Disconnect() { if (connexion != null) connexion.Close(); connexion = null; } 

запрос выполняется без исключения, но ничего не изменяется в таблице. тип атрибута Url – varchar (Max), а СУБД – Sql Server .

Так в чем проблема? как я могу исправить свой запрос?

Проблема в том, что вы используете команду ExecuteReader . Измените это следующим образом:

 command.ExecuteNonQuery(); 

Теперь, кроме того, я хочу предложить несколько советов. Рассмотрим следующую модификацию вашего текущего кода:

 public void Update_Download(string _url) { try { using (SqlConnection connexion = Data.Connect()) { string queryString = "update Fichier set [email protected] , Downloads_count= Downloads_count + 1 where Url = @url "; using (SqlCommand command = new SqlCommand(queryString, connexion)) { command.Parameters.AddWithValue("@last", DateTime.Now); command.Parameters.AddWithValue("@url", _url); command.ExecuteNonQuery(); } } } catch (Exception ex) { } } 

и подумайте о том, что Data.Connect() возвращает new SqlConnection(...) потому что вы хотите следовать этой процедуре. Когда вам нужно новое соединение, получите его с помощью new операции и позвольте SQL Server управлять пулом. Никогда не обменивайтесь соединениями

Я не уверен, что вы используете соединение , это всего лишь наблюдение.

Да, как вы можете видеть в MSDN по этой ссылке:

http://msdn.microsoft.com/en-ca/library/system.data.sqlclient.sqlcommand(v=vs.80).aspx

ExecuteNonQuery: выполняет команды, такие как инструкции Transact-SQL INSERT, DELETE, UPDATE и SET.

Поэтому попробуйте использовать этот метод, это должно сработать!

  • Как получить набор строк из массива id?
  • Процедура вызова в другой базе данных с определенным типом таблицы
  • ExecuteNonQuery возвращает -1
  • Взаимодействие с базой данных с использованием C # без Entity Framework
  • Как заставить LINQ to SQL использовать строку подключения, которая изменяется во время выполнения?
  • Сравнение между двумя датами в SQL-запросе
  • Создание таблицы SQL Server из C # datatable
  • WebAPI не отправляет данные
  • Иногда работает подключение к SQL Server
  • Каков правильный способ вставки типа DBGeography через ado.net
  • Тестирование Sql Connection Validity
  • Interesting Posts

    Hibernate Преобразование «NVARCHAR» в «Serializable» при создании классов pojo из таблиц Sql Server

    SQL Server Вставка на основе дополнительного запроса

    Можно ли объединить виртуальный столбец в представлении?

    Как получить результат поплавка, разделив два целочисленных значения?

    Как преобразовать DateTime в TimeSpan в запрос Entity Framework

    Группировать по id (не первичный ключ) с несколькими типами адресов

    SELECT SQL Variable – следует ли избегать использования этого синтаксиса и всегда использовать SET?

    Как выбрать частичную таблицу для экспорта с использованием SQL?

    как разобрать URL с mysql?

    Разный OUTPUT при использовании оператора MERGE?

    Получение% Разница двух столбцов в SQL Server

    T-SQL: выбор верхних n символов из текстового или ntext столбца

    SQL Server: Как определить, уникален ли состав нескольких полей в строке?

    Использование предложения GROUP BY для замены разнородных строк одним значением

    Выберите случай, который не работает должным образом

    Давайте будем гением компьютера.