Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Как решить глюк с запросом к БД Добавлено: 26.03.07 11:24  

Автор вопроса:  Vlad | ICQ: 452-568-953 
БД написана в SQL MS 2000.
Команда SELECT выполняется с успехом.
С командой INSERT INTO возникла проблема и не знаю по какой причине(
Код следующий:

SqlConnection1.Open()
        SqlDataAdapter1.InsertCommand.CommandText = "INSERT INTO client(Firstname, Adres,Phone, Fax, Person, Email, Info) VALUES('" & txtName.Text & "', '" & txtAdres.Text & "', '" & txtPhone.Text & "', '" & txtFax.Text & "', '" & txtPerson.Text & "', '" & LinkLabel1.Text & "', '" & txtInfo.Text & "')"
               SqlDataAdapter1.InsertCommand.ExecuteNonQuery()

Выдается ошибка:
System.Data.SqlClient.SqlException: Prepared statement '(@Firstname varchar(50),@Adres varchar(100),@Phone varchar(50),@' expects parameter @Firstname, which was not supplied.

Чего не хватает - не могу понять.
Помогите, плс, кто знает.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 26.03.07 12:09
SqlDataAdapter1.InsertCommand.CommandText = "INSERT INTO client(Firstname, Adres,Phone, Fax, Person, Email, Info) VALUES('" & txtName.Text & "', '" & txtAdres.Text & "', '" & txtPhone.Text & "', '" & txtFax.Text & "', '" & txtPerson.Text & "', '" & LinkLabel1.Text & "', '" & txtInfo.Text & "')"

Автор ничего не слышал о SQL injection, его удивление при виде уничтоженной базы будет приятным.

System.Data.SqlClient.SqlException: Prepared statement '(@Firstname varchar(50),@Adres varchar(100),@Phone varchar(50),@' expects parameter @Firstname, which was not supplied.

Чего не хватает - не могу понять.

Попробуй, к примеру, прочитать сообщение об ошибке, а не указывать на него со словами "не работает!".

Ответить

Номер ответа: 2
Автор ответа:
 Vlad



ICQ: 452-568-953 

Вопросов: 1
Ответов: 4
 Профиль | | #2 Добавлено: 26.03.07 12:11
Я и читаю. Код написан верно, параметр @Firstname задает в запрос '" & txtName.Text & "'

В чем загвоздка?

Ответить

Номер ответа: 3
Автор ответа:
 Vlad



ICQ: 452-568-953 

Вопросов: 1
Ответов: 4
 Профиль | | #3 Добавлено: 27.03.07 11:46
Неужели на форуме нет знающих людей? Очень нужна помощь.

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 27.03.07 13:01
наверное в txtName пусто...

Ответить

Номер ответа: 5
Автор ответа:
 Vlad



ICQ: 452-568-953 

Вопросов: 1
Ответов: 4
 Профиль | | #5 Добавлено: 27.03.07 13:31
txtName заполняется, я проверял. Любыми вариациями.

Ответить

Номер ответа: 6
Автор ответа:
 VerhoLom



Вопросов: 20
Ответов: 285
 Профиль | | #6 Добавлено: 31.03.07 14:58
А Вы случаем не в табличную функцию с параметрами пытаетесь строки вставить? Сильно похоже... "client" - это таблица?
Попробуйте еще вместо адаптера пользоваться просто объектом Command, установив его свойства:


.CommandType = CommandType.Text
.CommandText = "SQL-запрос"
.ExecuteNonQuery 'Выполнить запрос


Я-бы еще перепроверил наличие одинарных кавычек (апострофов), т. к. при попытке вставить текст с ними возникает ошибка, либо в запросе где не хватает кавычки. Выведите перед выполнением в MessageBox получившийся у Вас запрос и рассмотрите его... Может чего и пропустили.

Ответить

Номер ответа: 7
Автор ответа:
 BUMM ®



Вопросов: 8
Ответов: 482
 Профиль | | #7 Добавлено: 03.04.07 00:45

SqlDataAdapter1.InsertCommand.CommandText = "INSERT INTO client(Firstname, Adres,Phone, Fax, Person, Email, Info) VALUES(?,?,?,?,?,?,?)"

dim par1 as SqlParameter
par1.value = Cobj(txtName.text)
InsertCommand.parametres.add(par1)
....
....
и так для каждого текстбокса


Студии под рукой нету может ошибки есть синтаксические, но думаю идея ясна, пользуй параметры - меньше ошибок будет

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам