Строка запроса в команде SQL c # - PullRequest
6 голосов
/ 04 июля 2011

Прежде всего .. извините за мой плохой английский, я надеюсь, что меня поймут.

Я регулярно работаю с LINQ, SQL для меня новый.

Я пытаюсь сделать следующее: у меня есть следующий метод на 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; 
}

У меня есть страница, например: items.aspx?nID=144

как я могу сделать, чтобы команда SELECT была с запросной строкой, которая будет принимать значение

из таблицы "items" по идентификатору (nID), отображаемому на адресе?

Таблица имеет дизайн, например: id, title, bla, main.

Ответы [ 2 ]

6 голосов
/ 04 июля 2011

Попробуйте что-то вроде этого:

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 голосов
/ 04 июля 2011

Попробуйте:

Обратите внимание на (Request.QueryString["nID"] ?? "0").ToString(), это действительно важно, поэтому вы не получите исключение, когда нет запроса.

    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 id=@ID"; //@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;
    }
...