Команда обновления SQL в c #

У меня есть таблица SQL Server с такими столбцами:

Mobile No <> OTP <> GenTime <> AuthTime <> IsAuth 9632587410 <> 256389 <> ****** <> ******** <> False 9876543210 <> 258963 <> ***** <> ****** <> False 

скоро …

 using (SqlConnection conn = new SqlConnection()) { string inputn = Console.ReadLine(); long mobileNo; long.TryParse(inputn, out mobileNo); string inputo = Console.ReadLine(); int OTP; Int32.TryParse(inputo, out OTP); DateTime now = DateTime.Now; conn.ConnectionString = "Data Source=10.0.0.98;Initial Catalog=TeletextCMS_Dev;User ID=Testteam;Password=Cognigent33#"; conn.Open(); //long r = 8947052876; SqlCommand command = new SqlCommand("SELECT * FROM CustomerAuthOTP WHERE MobileNum=" + mobileNo, conn); int f = 0; using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { //int OTP = reader[1]; int OTPGen = int.Parse(string.Format("{0}", reader[1])); int a = now.Hour; int b = now.Minute; int e = now.Day; DateTime then = DateTime.Parse(string.Format("{0}", reader[2])); int c = then.Hour; int d = then.Minute; int g = then.Day; if (e == g) { int t = (a - c) * 60 + b - d; if (OTP == OTPGen && e == g && t <= 15) { Console.WriteLine("Hi"); f = 1; } else { Console.WriteLine("No"); } } if (e > g) { int t = (a + 24 - c) * 60 + b - d; if (OTP == OTPGen && e == g && t <= 15) { Console.WriteLine("Hi"); f = 1; } else { Console.WriteLine("No"); } } } } if(f == 1) { SqlCommand cmd = new SqlCommand("UPDATE CustomerAuthOTP SET IsAuthenticated=True, AuthenticationTime=" + now, conn); Console.WriteLine("Hi"); } } 

Теперь у меня есть команда « Update . Я попытался выполнить его, но он ничего не делает.

В коде отсутствует ошибка. Пожалуйста, помогите мне, если f == 1, а затем в таблице CustomerAuthOTP обновите значение IsAuthenticated чтобы оно было истинным, а также установите время аутентификации на now.DateTime()

Прежде всего, вы должны выполнить команду:

 SqlCommand cmd = new SqlCommand("UPDATE CustomerAuthOTP SET IsAuthenticated=True, AuthenticationTime=" + now, conn); cmd.ExecuteNonQuery(); 

Я рекомендую использовать SqlCommand.Parameters

 var commandText = "UPDATE CustomerAuthOTP SET [email protected], [email protected]"; SqlCommand cmd = new SqlCommand(commandText, conn); cmd.Parameters.AddWithValue("@IsAuthenticated", true); cmd.Parameters.AddWithValue("@AuthenticationTime", now); cmd.ExecuteNonQuery(); 

Это поможет поставщику SQL определять типы параметров и защищает от SQL-инъекций.

 DateTime now = DateTime.Now; ... SqlCommand cmd = new SqlCommand( "UPDATE CustomerAuthOTP SET IsAuthenticated=True, AuthenticationTime=" + now, conn); 

Обратите внимание, что это будет конкатенация строк, и (в зависимости от вашего языка и т. Д.) Следующее недопустимо. TSQL:

 UPDATE CustomerAuthOTP SET IsAuthenticated=True, AuthenticationTime=08/12/2015 12:08:32 

Непосредственной проблемой является форматирование (как datetime, так и boolean являются неправильными), но это лучше всего фиксировать параметризацией – вы почти никогда не должны конкатенировать значения в TSQL:

 SqlCommand cmd = new SqlCommand( "UPDATE CustomerAuthOTP SET IsAuthenticated=1, [email protected]", conn); cmd.Parameters.AddWithValue("now", now); cmd.ExecuteNonQuery(); 

Или с помощью инструмента, такого как « dapper »:

 conn.Execute("UPDATE CustomerAuthOTP SET IsAuthenticated=1, [email protected]", new { now }); 
  • Как экспортировать в файл все записи из таблиц базы данных?
  • Добавление веб-приложения C # на веб-сайт с помощью IIS6
  • Альтернативный вариант для SQL Server 2008 Management Studio Express
  • Как подключиться к серверу MSSQL в UWP (.NET universal App)
  • Различный вид формы, когда разные типы учетных записей
  • Добавить возможности SQL Server Express «Дополнительно» в LocalDB, установленные Visual Studio
  • SSIS - несколько конфигураций
  • Обновление и удаление внешних операторов соединения
  • Visual Studio .sqlproj всегда построен
  • Процедура CLR Не отображается в процессах SQL Server
  • Как отключить цитируемые идентификаторы при написании объектов базы данных SQL Server в Visual Studio?
  • Interesting Posts

    «Многие-ко-многим» с «Первичным»

    Недопустимое исключение литья из SqlDataReader при чтении бит

    Как отладить SQL-ошибку 3616 «Ошибка была вызвана во время запуска триггера»

    Понимание трассировки SQL Profiler

    История изменений таблицы таблиц Sql

    Выберите несколько строк из расписания

    Вычисленная колонка для добавления даты на основе другого столбца даты и внешнего ключа

    Возвращать все месяцы и годы между диапазоном дат – SQL

    Использование идентификатора GUID FILESTREAM SQL Server в качестве первичного ключа

    Удаление всех записей во многих таблицах после удаления родительского элемента с помощью Nhibernate

    Несколько XML-формат из одной таблицы SQL Server

    Как вы обрезаете все таблицы в базе данных с помощью TSQL?

    Как выбрать одно и то же поле дважды с разными условиями и отображать результаты как отдельные поля

    Преобразование IP в 32-разрядный двоичный код в TSQL

    Внедрить «Пересечение» с помощью «UNION ALL» и «GROUP BY»

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