navi G Ответов: 2

Как сделать парамитризованный запрос с помощью ASP.NET с#


Привет друзья,

Я пытаюсь создать парамитризованный запрос, чтобы сравнить цену.
Это запрос, который я использую, проблема в том, что он не показывает мне ничего или когда-нибудь он покажет 'должен объявить скалярную переменную "@prc1". .

(пожалуйста, пожалуйста, опубликуйте свои ответы с изменением моего кода для лучшего понимания).


Проверьте, правильно ли мой запрос?
Проверьте также, правильно ли мой парамитризованный код ?

Что я уже пробовал:

public partial class Searchpage : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection();
    //string price1;
   // string price2;
    //string osx;
    //string checktwog;
    //string checkthreeg;
    //string checkfourg;
    //string phonetype;
    //string cam;
    //string ram;
    //string q;
    protected void Page_Load(object sender, EventArgs e)
    {
        con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
        con.Open();
        try
        {
         
            string price1 = Convert.ToString(Session[price1]);

          String q = SELECT * FROM legacy WHERE [price] >= @prc1";
          
              SqlCommand comm = new SqlCommand(q, con);
           comm.Parameters.AddWithValue(@prc1, price1);
           SqlDataSource1.SelectCommand = q;
           SqlDataSource1.DataBind();
           
        }
        catch (Exception ex)
        {
            
            Response.Write(ex.ToString());
        }
        
    }

2 Ответов

Рейтинг:
2

Member 12871734

связь.Параметры.AddWithValue ("@prc1", price1);


navi G

привет, комм.Параметры.AddWithValue ("@prc1", price1);
это мой настоящий код . но в моем вопросе это была моя ошибка.

Member 12871734

SqlConnection con = ConfigurationManager.ConnectionStrings ["Конн"].Параметр connectionString;

Рейтинг:
18

OriginalGriff

Начните с того, что не используйте строки все время, а используйте более подходящие типы данных: в этом случае int, double, или decimal в зависимости от столбца цены в вашей базе данных. Преобразуйте строку (при необходимости используя TryParse) и сохраните ее в сеансе как соответствующий тип.
Предположим, что все цены-целые числа.

int price = (int) Session["Price"];
using (SqlConnection con = new SqlConnection(strConnect))
    {
    con.Open();
    using (SqlCommand cmd = new SqlCommand("SELECT * FROM Legacy WHERE Price >= @PRC", con))
        {
        cmd.Parameters.AddWithValue("@PRC", price);
        SqlDataSource1.SelectCommand = cmd;
        SqlDataSource1.DataBind();
        }
    }