Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Параметризированный запрос  [new]
черный_монах
Member

Откуда:
Сообщений: 471
Запрос такой
private String strSqlRankName = @"Select t2.Rank From Ranks As t2, Main As t1 
					Where t1.Name=? And t1.RanID=t2.RankID";
Компилятор ругается на строчке
cmd.Parameters.Add(@t1.Name,OleDbType.BSTR);
что в принципе закономерно
Текст ошибки
D:\gribnik_prj\karakas\JURNAL\j_pr_\j_pr\J_Prog\Form1.cs(566): The type or namespace name 't1' could not be found (are you missing a using directive or an assembly reference?)
Как исправить?
10 фев 08, 19:32    [5269113]     Ответить | Цитировать Сообщить модератору
 Re: Параметризированный запрос  [new]
ппц
Guest
купи книжку с примерами и картинками
10 фев 08, 20:10    [5269146]     Ответить | Цитировать Сообщить модератору
 Re: Параметризированный запрос  [new]
Bigheadman
Member

Откуда:
Сообщений: 2663
Что такое @t1.Name? Откуда это взялось? Зачем собака написана?
Приведите полный код от создания всех необходимых объектов до выполнения запроса.
10 фев 08, 20:17    [5269153]     Ответить | Цитировать Сообщить модератору
 Re: Параметризированный запрос  [new]
черный_монах
Member

Откуда:
Сообщений: 471
Исправил на
cmd.Parameters.Add("t1.Name",OleDbType.BSTR);
cmd.Parameters[0].Value=slName;
OleDbDataReader rdr = cmd.ExecuteReader();
теперь исключение говорит что отсутствует значение для одно или нескольких требуемых параметров
10 фев 08, 20:17    [5269154]     Ответить | Цитировать Сообщить модератору
 Re: Параметризированный запрос  [new]
черный_монах
Member

Откуда:
Сообщений: 471
код
private String strSqlRankName = @"Select t2.Rank From Ranks As t2, Main As t1 
					Where t1.Name=? And t1.RankID=t2.RankID";
.
.
String slName=listBox1.SelectedItem.ToString();
Globals.cn.Open();
OleDbCommand cmd = new OleDbCommand(strSqlRankName, Globals.cn);
cmd.Parameters.Clear();
cmd.Parameters.Add("t1.Name",OleDbType.BSTR);
cmd.Parameters[0].Value=slName;
OleDbDataReader rdr = cmd.ExecuteReader();
comboRank.Items.Clear();
comboRank.Items.Add("(не выбрано)");
while (rdr.Read())
{
	comboCompany.Items.Add(rdr[0]);
}
rdr.Close();
10 фев 08, 20:20    [5269159]     Ответить | Цитировать Сообщить модератору
 Re: Параметризированный запрос  [new]
черный_монах
Member

Откуда:
Сообщений: 471
А собака в примере в книжке Сеппа написана )
10 фев 08, 20:25    [5269168]     Ответить | Цитировать Сообщить модератору
 Re: Параметризированный запрос  [new]
Bigheadman
Member

Откуда:
Сообщений: 2663
t1.Name - это колонка в таблице БД, а не параметр запроса.
А вот какое в данном случае имя у параметра запроса - вопрос. Изучайте документацию по OleDB.
Я предлагал вам уже использовать SqlClient, а не OleDb.
10 фев 08, 20:34    [5269188]     Ответить | Цитировать Сообщить модератору
 Re: Параметризированный запрос  [new]
черный_монах
Member

Откуда:
Сообщений: 471
Отбой. В СУБД с полями намудил
10 фев 08, 20:35    [5269193]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить