Обновление значений с помощью C # в таблице SQL

1

Мне было интересно, если кнопка обновления может сохранить изменения, внесенные в таблицу. Я написал этот код, но я понятия не имею, как он может работать

Это код, который я написал для кнопки обновления:

string conString = "Data Source=MIRANDA-PC;Initial Catalog=Futebol do Rosa;Integrated Security=True";
SqlConnection con = new SqlConnection(conString);
string selectSql = "Update Players$ set Player Name='" + dataGridView2.Text + "";
SqlCommand cmd = new SqlCommand(selectSql, con);
con.Open();

Это таблица, в которой я хочу обновить значения в:

Изображение 174551

Теги:
sql-server
datagridview

4 ответа

4

Ну, вам просто нужно выполнить запрос с помощью ExecuteNonQuery.

Но что более важно, вы всегда должны использовать параметризованные запросы. Этот тип конкатенаций строк открыт для атак SQL Injection.

Также using инструкцию using для SqlConnection и SqlCommand.

И если ваша таблица или столбец содержит несколько слов, вы должны использовать их с [] качестве [Player Name]. И, честно говоря, немного странно использовать знак $ в имени таблицы.

using(SqlConnection con = new SqlConnection(conString))
using(SqlCommand cmd = con.CreateCommand())
{
    cmd.CommandText = "Update Players$ set [Player Name] = @name";
    cmd.Parameters.Add("@name", SqlDbType.NVarChar, 16).Value = dataGridView2.Text;
    con.Open();
    cmd.ExecuteNonQuery();
}
1

Вы должны выполнить свой SQL-запрос с помощью своего объекта db.

dbinstance.ExecuteSqlCommand(string sqlcommand, object[] params);

Этот метод предназначен как для DDL, так и для DML. вы также можете использовать метод ExecuteNonQuery.

0

Лучшее решение (если возможно) для преобразования вашего уровня DAL (Data Access Layer) в платформу Entity, вместо написания собственных SQL-запросов. Это безопасно по дизайну и никогда не уязвимо для SQL-инъекций любого типа. Вот какой код макета:

using (AppEntities currDb = new AppEntities)
{
    Players PlayerToEdit =
    from player in currDb.Players
    where player.PlayerID == lngPlayerID
    select player.First();

    PlayerToEdit.PlayerName = dataGridView2.Text;
    currDb.SaveChanges();
}

Вы можете прочитать об этом еще несколько: https://msdn.microsoft.com/en-us/data/ef.aspx

0
 cmd.CommandText = "Update Players$ set [Player Name] = @Playername";
    cmd.Parameters.Add("@Playername", SqlDbType.NVarChar, 16).Value = dataGridView2.Text;
    con.Open();
    cmd.ExecuteNonQuery();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню