ASP.net странное поведение вида сетки - PullRequest
0 голосов
/ 25 июля 2011

Я работаю в Visual Studio 2010 над созданием веб-приложения ASP. Я пытаюсь реализовать функцию поиска в виде сетки, где я буду передавать команду выбора ADO в набор данных и заполнять сетку данных желаемым SQL. Я знаю, что это возможно для winforms и datagridview, но по какой-то причине, это странно действует на мое приложение ASP. Вот код ...

   protected void btn_search_Click(object sender, EventArgs e)
    {
        SqlConnection cs = new SqlConnection("Data Source=WILSON-PC; Initial Catalog=KamManOnline; Integrated Security=TRUE");
        SqlDataAdapter da = new SqlDataAdapter();
        DataSet ds = new DataSet();

        da.SelectCommand = new SqlCommand("SELECT * FROM vw_orderView WHERE Supplier = @Supplier", cs);

        da.SelectCommand.Parameters.Add("@Supplier", SqlDbType.VarChar).Value = ddl_SupplierView.Text.ToString();
        ds.Clear();

        da.Fill(ds);
        gv_search.DataSource = ds.Tables[0];
        gv_search.DataBind();


    }

Что происходит, когда он выбирает правильное количество данных, но не показывает их в виде сетки. Например, скажите, было ли у меня 3 поля в качестве Уилсона для поставщика. Когда я нажимаю кнопку поиска, она выдает 3 строки, но они пусты. Есть идеи или другой способ обойти это? Спасибо!

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

SELECT * FROM vw_orderView WHERE (Supplier = @Supplier OR @Supplier IS NULL). 

Я попытался написать это в построителе запросов, но мне нужно добавить условие if, чтобы указать, будет ли поставщик иметь значение или будет нулевым (флажок). Если это правильный подход, то, пожалуйста, так и скажите. Спасибо

1 Ответ

1 голос
/ 25 июля 2011

Я бы сделал следующее для устранения неполадок.

  1. Запустите запрос непосредственно из SSMS, чтобы убедиться, что вы получите ожидаемые результаты.
  2. Убедитесь, что GridView имеет AutoGenerateColumns = true, если вы не определяете столбцы вручную.
  3. Запустите в режиме отладки с точкой останова, установленной на ds.Clear(), и проверьте вновь добавленный параметр, чтобы убедиться, что он содержит ожидаемое вами значение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...