2011-07-03 13 views
6

Antes que nada ... discúlpenme por mi mal inglés, espero ser comprendido.Cadena de consulta en el comando SQL C#

Soy regullar para trabajar con LINQ, el SQL es nuevo para mí.

que estoy tratando de hacer la siguiente cosa: Tengo el siguiente método en C#:

public string niceMethod() 
{ 
    SqlConnection connection = new SqlConnection("Data Source=*******;Integrated Security=False;"); 
    string commandtext = "SELECT bla FROM items WHERE main = 1"; 
    SqlCommand command = new SqlCommand(commandtext, connection); 
    connection.Open(); 
    string tDate = (string)command.ExecuteScalar(); 
    connection.Close(); 
    return tDate; 
} 

tengo la página, por ejemplo: items.aspx?nID=144

¿cómo puedo hacer que el comando SELECT será con querystring y que tomará el valor

de la tabla "artículos" por el ID (nID) que se muestran en la dirección?

la tabla tienen el diseño como por ejemplo: id, title, bla, main.

+0

¿Por qué no utiliza algunos ORM? Entonces podrías usar LINQ. – svick

Respuesta

6

intentar algo como esto:

int nID = int.Parse(Request.QueryString["nID"].ToString()); 
niceMethod(nID); 

public string niceMethod(int nID) 
{ 
    using (var conn = new SqlConnection("Data Source=server;Initial Catalog=blah;Integrated Security=False;")) 
    using (var cmd = conn.CreateCommand()) 
    { 
     conn.Open(); 
     cmd.CommandText = @"SELECT bla, id, title FROM items WHERE main = @nID"; 
     cmd.Parameters.AddWithValue("@nID", nID); 
     string tDate = cmd.ExecuteScalar().ToString();    
     return tDate; 
    } 
} 
5

Prueba esto:

Tenga en cuenta el (Request.QueryString["nID"] ?? "0").ToString() es realmente importent por lo que no conseguirá excepción cuando no hay consulta

public string niceMethod() 
    { 
     string tDate = ""; 
     string ID = (Request.QueryString["nID"] ?? "0").ToString(); // Get's the nID query, incase there is no query, returns 0. 
     using (SqlConnection connection = new SqlConnection("Data Source=*******;Integrated Security=False;")) 
     { 
      string commandtext = "SELECT bla FROM items WHERE [email protected]"; //@ID Is a parameter 
      SqlCommand command = new SqlCommand(commandtext, connection); 
      command.Parameters.AddWithValue("@ID", ID); //Adds the ID we got before to the SQL command 
      connection.Open(); 
      tDate = (string)command.ExecuteScalar(); 
     } //Connection will automaticly get Closed becuase of "using"; 
     return tDate; 
    } 
Cuestiones relacionadas