Ошибка при передаче значения из TextBox в sql запрос

147
12 мая 2019, 07:50

adapter = new SqlDataAdapter("SELECT  tRoutesPuncts.ID_Punct, tPuncts.sPunct FROM dbo.tRoutesPuncts INNER JOIN tRoutes ON dbo.tRoutesPuncts.ID_Route = dbo.tRoutes.ID_Route" +
       " inner join tPuncts ON dbo.tRoutesPuncts.ID_Punct = dbo.tPuncts.ID_Punct WHERE tRoutesPuncts.ID_Route=" + id.Text, connection);
        dtForAddPuncts = new DataTable();
        adapter.Fill(dtForAddPuncts);
        bsForAddPuncts= new BindingSource();
        bsForAddPuncts.DataSource = dtForAddPuncts;
        cbAddPuncts.DataSource = bsForAddPuncts;
        cbAddPuncts.ValueMember = "ID_Punct";
        cbAddPuncts.DisplayMember = "sPunct";
    }

Ошибка появляется здесь : "adapter.Fill(dtForAddPuncts);"

Answer 1

Там хранится значение текущего ID_Route у таблицы tRoutes

я Вам что, Станиславский?

Напишите уже, что там за текст, а то я Вам минус поставлю.

<дистанционное чтение кода сквозь монитор>

Строка id.Text - пустая. Соответственно, SQL заканчивается на

... WHERE tRoutesPuncts.ID_Route=

что синтаксически ошибочно.

Давайте, мы вместо Вашей ошибки получим ошибку конвертации:

int ID_Route = int.Parse(id.Text);
adapter = new SqlDataAdapter("SELECT  tRoutesPuncts.ID_Punct, tPuncts.sPunct FROM dbo.tRoutesPuncts INNER JOIN tRoutes ON dbo.tRoutesPuncts.ID_Route = dbo.tRoutes.ID_Route" +
       " inner join tPuncts ON dbo.tRoutesPuncts.ID_Punct = dbo.tPuncts.ID_Punct WHERE tRoutesPuncts.ID_Route=" + 
       ID_Route.ToString(), connection);

</дистанционное чтение кода сквозь монитор>

Answer 2
void LoadDataFromRoutesPuncts(int id)
    {
        adapter = new SqlDataAdapter("SELECT  tRoutesPuncts.ID_Punct, tPuncts.sPunct FROM dbo.tRoutesPuncts INNER JOIN tRoutes ON dbo.tRoutesPuncts.ID_Route = dbo.tRoutes.ID_Route" +
   " inner join tPuncts ON dbo.tRoutesPuncts.ID_Punct = dbo.tPuncts.ID_Punct WHERE tRoutesPuncts.ID_Route=" + id, connection);
        dtForAddPuncts = new DataTable();
        adapter.Fill(dtForAddPuncts);
        bsForAddPuncts = new BindingSource();
        bsForAddPuncts.DataSource = dtForAddPuncts;
        cbAddPuncts.DataSource = bsForAddPuncts;
        cbAddPuncts.ValueMember = "ID_Punct";
        cbAddPuncts.DisplayMember = "sPunct";
    }
LoadDataFromRoutesPuncts(Convert.ToInt32(((DataRowView)this.bsForRoutes.Current).Row["ID_Route"]));
READ ALSO
Как в одну форму вставить 2 действия

Как в одну форму вставить 2 действия

Есть одна форма регистрации с двумя типами клиентов, юридическое и физическое лицоВопрос в том,как их разграничить

169
Button submit без перезагрузки

Button submit без перезагрузки

решил создать простенький тест на php, может кто подсказать какой ajax код надо написать чтобы при нажатии на кнопку страничка не перезагружаласьВот...

317
Что почитать или посмотреть, чтобы в совершенстве овладеть CMS Drupal и Bitrix? [закрыт]

Что почитать или посмотреть, чтобы в совершенстве овладеть CMS Drupal и Bitrix? [закрыт]

Подскажите пожалуйста литературу или подкасты, чтобы помимо умения выполнять абсолютно любые задачи на данных cms, ещё и уметь создавать шаблоны,...

176