2008-08-28 3 views
7

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

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

ответ

15
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(); 
} 
+0

Пятно на! Использование параметра не только защитит вас от атак SQL-инъекций (в зависимости от типа параметра .net курса), но также позволит SQL Server кэшировать скомпилированный запрос и просто подставить параметр в следующий раз, когда будет вызываться этот код. – MPritchard 2009-08-08 10:12:31

+1

Предлагайте изменяется на: используя (вар Conn = новый SqlConnection (yourConnectionString)) используя (вар CMD = новый SqlCommand ("вставить в значения Foo (@bar)", Conn)) { cmd.Parameters.AddWithValue (» @bar ", 17); conn.Open(); cmd.ExecuteNonQuery(); } – MPritchard 2009-08-08 10:14:53

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

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