2016-10-03 5 views
0

На веб-формы ASP.NET, у меня есть: многострочный TextBox кнопка GridViewasp.net: Как пройти входной сигнал от многострочного TextBox для TableAdapter запроса

TextBox является запись для PRODUCT_ID. Когда PRODUCT_ID введен в TextBox и нажата кнопка, он вернет строки из таблицы Product и отобразит их в GridView.

Я создал DataSet с TableAdapter. Вот запрос для Получ:

SELECT  PRODUCT_ID, PRODUCT_NAME 
FROM   TEST.PRODUCT 
WHERE  (PRODUCT_ID = ?) 

Вот код:

защищен недействительным Button2_Click (объект отправителя, EventArgs е) { короткий идентификатор = short.Parse (TextBox2.Text);

MyDataSetTableAdapters.PRODUCTTableAdapter idDS = new PRODUCTTableAdapter(); 

    MyDataSet.PRODUCTDataTable idDT = idDS.GetID(id); 

    GridView2.DataSource = idDT; 
    GridView2.DataBind(); 
} 

Он работает, когда я только ввести один PRODUCT_ID в TextBox. Например,

если я введу «8», он отобразит строку из таблицы PRODUCT, где PRODUCT_ID = 8;
если ввести «9», он будет отображать строку из таблицы PRODUCT, где PRODUCT_ID = 9.

Идея заключается в том, чтобы ввести PRODUCT_ID в TextBox (один или несколько) и отображения соответствующих строк в GridView.

Однако, когда я попытался ввести более ID в TextBox, например: (нажмите на кнопку)

Это не сработало.

Сообщение об ошибке говорит - { «Входная строка не была в правильном формате.»}

Как передать входной сигнал от многострочного TextBox для TableAdapter запроса?

ответ

0

Вам нужно немного изменить свой код.

Сначала измените метод GetID, чтобы принять строку.

public void GetID(string ids) 
{ 
    //your code 
} 

Во-вторых, измените ввод текстового поля MultiLine на запятую.

string ids= string.Join(",", TextBox1.Text.Split(' ')); 

В-третьих, измените свой запрос SQL where where.

SELECT  PRODUCT_ID, PRODUCT_NAME 
FROM   TEST.PRODUCT 
WHERE  (PRODUCT_ID in (ids)) 

Надеюсь, это поможет.

+0

Спасибо! Решение имеет смысл. Однако у меня возникают проблемы с SQL-запросом. в Мастере настройки запроса в TableAdapter -> Query Builder, я набрал «SELECT PRODUCT_ID, PRODUCT_NAME FROM TEST.PRODUCT ГДЕ (PRODUCT_ID в (?))» – user6913632

+0

Затем нажмите «Выполнить запрос». В всплывающем окне «Параметр запроса», когда я ввел «8» (никаких двойных кавычек в записи), он работал; когда я ввел «8,9», я получил ошибку - «Недопустимое значение для ячейки (строка 1, столбец 2).Измененное значение в этой ячейке не было изменено как действительное. .Net Framework Тип данных: Int32 ". PRODUCT_ID is smallint. Я пытаюсь использовать различные свойства параметров (Редактор коллекции параметров) ... – user6913632

+0

Далее я попытаюсь добавить код непосредственно в код для Button1_Click(). – user6913632

 Смежные вопросы

  • Нет связанных вопросов^_^