Обновить таблицу Где Sql - PullRequest
0 голосов
/ 14 июля 2020

Как ввести «Где» в этот SQL запрос? Я хочу изменить таблицу для указанного первичного ключа (StudentID)

   SqlCommand cmd = new SqlCommand("update StudentReg Set FirstName='" + txtfirstname.Text + "', LastName='" + txtlastname.Text + "', Class='" + txtclass.Text + "', [Password]='" + txtpassword.Text + "'", conn);

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

Пожалуйста, если вы хотите выполнить какую-нибудь команду sql, используйте параметризованный запрос. Например:

 SqlCommand cmd = new SqlCommand(@"Update StudentReg
                                   Set FirstName = @firstName,
                                       LastName  = @lastName,
                                       Class     = @class,
                                       Password  = @password
                                   where 
                                     Id = @id", conn);

cmd.Parameters.AddWithValue("@id", (int)txtId.Text);
cmd.Parameters.AddWithValue("@firstName", txtfirstname.Text.Trim());
cmd.Parameters.AddWithValue("@lastName", txtlastname.Text.Trim());
cmd.Parameters.AddWithValue("@class", txtclass.Text.Trim());
cmd.Parameters.AddWithValue("@password", txtpassword.Text.Trim());

int n = cmd.ExecuteNonQuery();

Почему параметризованный запрос, потому что вы хотите избежать внедрения sql. Прочтите здесь: Параметризованные запросы

Изменить: я опоздал с ответом: D, как написал @ Isaí Hinojos в своем ответе, вы можете использовать этот подход в его примере:

cmd.Parameters.AddWithValue("@first", SqlDbType.VarChar).Value = "Jack";

где указывается тип данных в таблице, второй параметр в методе AddWithValue.

1 голос
/ 14 июля 2020

Я бы предпочел использовать параметры, а для ответа на ваш вопрос:

var query = "UPDATE StudentReg Set FirstName=@first, LastName = @last, Class = @class, [Password] = @pass WHERE StudentID = @id"; 

var cmd = new SqlCommand(query, conn);

cmd.Parameters.AddWithValue("@first", SqlDbType.VarChar).Value = "Jack";
cmd.Parameters.AddWithValue("@id", SqlDbType.VarChar).Value = "0101D54";
//same for the rest  of the parameters
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...