C# - SQLClient - Простейшая вставка

Я в основном пытаюсь найти самый простой способ выполнить вашу базовую операцию вставки в C# .NET с использованием пространства имен SqlClient.

Я использую SqlConnection для своей ссылки на базу данных, мне уже удалось выполнить некоторые операции чтения, и я хочу знать самый простой способ вставки данных. Когда я гулю, я нахожу довольно подробные методы.

Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
9
0
13 012
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

using (var conn = new SqlConnection(yourConnectionString))
{
    var cmd = new SqlCommand("insert into Foo values (@bar)", conn);
    cmd.Parameters.AddWithValue("@bar", 17);
    conn.Open();
    cmd.ExecuteNonQuery();
}

Пятно! Использование параметра не только защитит вас от атак SQL-инъекций (конечно, в зависимости от типа параметра .net), но также позволит SQL Server кэшировать скомпилированный запрос и просто заменить параметр при следующем вызове этого кода.

MPritchard 08.08.2009 14:12

Предложите изменить на: using (var conn = new SqlConnection (yourConnectionString)) using (var cmd = new SqlCommand ("вставить в значения Foo (@bar)", conn)) {cmd.Parameters.AddWithValue ("@ bar", 17 ); conn.Open (); cmd.ExecuteNonQuery (); }

MPritchard 08.08.2009 14:14

(Перемещение старого ответа сюда в качестве комментария) Я намеренно оставил использование SqlCommand, поскольку OP искал «простейший» код для вставки (хотя я оставил его на соединении, потому что это более важно). Я согласен, что это хорошая практика.

Matt Hamilton 08.08.2009 17:09

using (SqlConnection myConnection new SqlConnection("Your connection string")) 
{ 
    SqlCommand myCommand = new SqlCommand("INSERT INTO ... VALUES ...", myConnection); 
    myConnection.Open(); 
    myCommand.ExecuteNonQuery(); 
}

-1. Такой подход поощрял бы создание строки SQL вручную, а не использование параметризованного SQL. Извини

MPritchard 08.08.2009 14:14

Поскольку вы, кажется, только начинаете с этого, сейчас лучшее время для ознакомления с концепцией уровня доступа к данным (обязательная ссылка на википедию). Это будет очень полезно для вас в будущем, когда ваши приложения будут больше взаимодействовать с базой данных и вы захотите минимизировать дублирование кода. Также обеспечивает более последовательное поведение, упрощая тестирование и многие другие вещи.

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