2008-08-28 11 views
7

Básicamente, estoy tratando de descubrir la forma más sencilla de realizar su operación de inserción básica en C# .NET utilizando el espacio de nombres SqlClient.C# - SQLClient - Más simple INSERT

Estoy usando SqlConnection para mi enlace de db, ya he tenido éxito al ejecutar algunas lecturas, y quiero saber la forma más sencilla de insertar datos. Estoy buscando lo que parecen ser métodos bastante detallados cuando googleo.

Respuesta

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

Spot on! Usar un parámetro no solo lo protegerá de los ataques de inyección de SQL (dependiendo del tipo de curso del parámetro .net), sino que también permitirá que SQL Server guarde en caché la consulta compilada, y simplemente sustituirá el parámetro la próxima vez que se invoque este código. – MPritchard

+1

sugerir cambiar a: usando (var conn = new SqlConnection (yourConnectionString)) usando (var cmd = new SqlCommand ("insertar en valores Foo (@bar)", conn)) { cmd.Parameters.AddWithValue (" @bar ", 17); conn.Open(); cmd.ExecuteNonQuery(); } – MPritchard

+0

(Moviendo una respuesta anterior aquí como comentario) Dejé el uso del SqlCommand deliberadamente ya que el OP estaba buscando el código "más simple" para lograr el inserto (aunque lo mantuve en la conexión porque eso es más importante) Estoy de acuerdo en que es una buena práctica. –

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

-1. Este enfoque fomentaría la creación manual de una cadena de SQL y no el uso de SQL parametrizado. Lo siento – MPritchard

2

Ya que parece que se acaba de empezar con esto ahora es el mejor momento para familiarizarse con el concepto de una capa de acceso de datos (obligatory wikipedia link). Te será muy útil cuando tengas más interacción con la base de datos y quieras minimizar la duplicación de código. También contribuye a un comportamiento más consistente, facilitando las pruebas y toneladas de otras cosas.

Cuestiones relacionadas