Где и как написать этот SQL-запрос?

Это мой SQL-запрос и его выполнение, но я хочу обновить конкретный столбец таблицы с помощью этого запроса, поэтому как и где я пишу запрос на обновление?

public void Add()
{
    SqlConnection sqlcon = new SqlConnection("server =(LocalDB)\\MSSQLLocalDB; Database = Online Medical Store ; integrated security = true");
    sqlcon.Open();

    SqlCommand cmd = new SqlCommand("select LastName, FirstName, FatherName, Address, City, Contact, EmailAddress,BookSubject,BookTitle,EditionNumber,ISBN_Number,Issue_Date from IssueBooks where StudentID =@studentID and " +
        "ISBN_Number = @isbnNumber", sqlcon);

    cmd.Parameters.AddWithValue("@studentID", studentId);
    cmd.Parameters.AddWithValue("@ISbnNumber", ISbnNumber);

    SqlDataReader dr = cmd.ExecuteReader();

    if (dr.HasRows == true)
    {
        throw new Exception(" One Student Can Take Only One Book ");
    }
    else
    {
        SqlConnection con = new SqlConnection("server =(LocalDB)\\MSSQLLocalDB; Database = Online Medical Store ; integrated security = true");
        con.Open();

        SqlCommand sqlcmd = new SqlCommand("insert into IssueBooks(StudentID,LastName,FirstName,FatherName,Address, City," +
            " Contact, EmailAddress, BookSubject, BookTitle,EditionNumber, ISBN_Number,Issue_Date)values" +
            "(@studentID,@lastName,@firstName,@fatherName,@address,@city, @contact,@emailAddress,@BookSubject, @BookTitle, @EditionNumber, @ISBN_Number,@IssueDate)", con);
                                          
        sqlcmd.Parameters.AddWithValue("@studentID", studentId);
        sqlcmd.Parameters.AddWithValue("@lastName", LastName);
        sqlcmd.Parameters.AddWithValue("@firstName", FirstName);
        sqlcmd.Parameters.AddWithValue("@fatherName", FatherName);
        sqlcmd.Parameters.AddWithValue("@address", Address);
        sqlcmd.Parameters.AddWithValue("@city", City);
        sqlcmd.Parameters.AddWithValue("@contact", Contact);
        sqlcmd.Parameters.AddWithValue("@emailAddress", EmailAddress);
        sqlcmd.Parameters.AddWithValue("@BookSubject", bookSubject);
        sqlcmd.Parameters.AddWithValue("@BookTitle", bookTitle);
        sqlcmd.Parameters.AddWithValue("@EditionNumber", EditionNumber);
        sqlcmd.Parameters.AddWithValue("@ISBN_Number", isbnNumber);
        sqlcmd.Parameters.AddWithValue("@IssueDate", Issue_Date);

        sqlcmd.ExecuteNonQuery();
    }

    sqlcon.Close();
}

Не могли бы вы рассказать подробнее о том, что вы пытаетесь сделать? Здесь есть два запроса: выбрать и вставить. Думаете сменить метод с Add на AddOrUpdate?

tymtam 30.03.2021 04:06

КСТАТИ. Всего одна книга довольно суровая. Моя местная библиотека в настоящее время позволяет хранить до 20 предметов.

tymtam 30.03.2021 04:07

Да, есть 2 запроса, но я хочу добавить еще один запрос на обновление в этом разделе, поэтому, пожалуйста, расскажите мне, как и где я добавляю запрос на обновление, я хочу обновить конкретный столбец таблицы с помощью запроса на обновление. @tymtam

Daan 30.03.2021 04:14

Вы используете MSSQL. Просто используйте MERGE INTO запрос.

Llama 30.03.2021 04:19

что такое запрос на слияние напишите пожалуйста как и где @llama

Daan 30.03.2021 04:21

Как: Прочтите документация! Где: Где вам это нужно ...?

Llama 30.03.2021 04:21

@llama в моем случае, когда я пишу запрос на обновление?

Daan 30.03.2021 04:25

Только вы знаете, что где вы хотите выполнить обновление. Предположительно, вы хотите сделать это в фрагменте кода, в котором вы сейчас генерируете исключение? Как вы вообще довели свой код до этой стадии?

Llama 30.03.2021 04:28

после вставки запроса я хочу обновить определенный столбец таблицы, поэтому мой вопрос: как и где я пишу запрос на обновление? @llama

Daan 30.03.2021 04:31

Почему вы все время спрашиваете «где»? Напишите его там, где вам логически нужно, чтобы он запускался. Если это не сценарий «если существует, обновить, в противном случае вставить», то мое предложение о слиянии бесполезно. UPDATE - это то, что вам нужно.

Llama 30.03.2021 04:35

Другие вещи, о которых нужно подумать: AddWithValue - это зло, укажите типы и длину параметров. Строку подключения не кодируйте жестко, поместите ее в файл настроек. Утилизируйте соединение и считыватель с using. Нет необходимости выбирать все эти столбцы, если вам нужна только проверка exists. В любом случае подумайте о том, чтобы поместить все это в один пакет и вернуть код ошибки, особенно если у вас есть состояние гонки между двумя вашими запросами. ...

Charlieface 30.03.2021 05:10

... Если вы хотите "Upsert", подумайте о защите от гонок с HOLDLOCK, UPDLOCK

Charlieface 30.03.2021 05:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
12
50
0

Другие вопросы по теме