powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / DataSet: трабл заполнения
10 сообщений из 10, страница 1 из 1
DataSet: трабл заполнения
    #33465217
dmitran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка в коде возникает при обработке строки adapter.Fill(dataSet);

Exception на это пишет: ERROR [42000][Microsoft][Sql Server Driver][Sql Server]Must declare the variable '@login' ,но я ведь ее декларировал в строке command.Parameters.....

Помогите разобраться, мож чего-то не дописал...

string connectionString = "Driver={SQL Server};Server=NR\\MSSQLSERVER2000;Database=t1;Trusted_Connection=yes;" ;

string commandTextSelect = "SELECT Id, Login, Password, Access FROM stUsers WHERE (Login LIKE @Login)";
DataSet dataSet = new DataSet();
dataGrid1.DataSource = dataSet;

try {

OdbcCommand command = new OdbcCommand();
command.CommandText = commandTextSelect;

command.Parameters.Add(new System.Data.Odbc.OdbcParameter("@Login",System.Data.Odbc.OdbcType.Text,10,"Login"));

command.Parameters["@Login"].Value = textBox9.Text;

OdbcConnection connection = new OdbcConnection(connectionString);
command.Connection = connection;
connection.Open();
MessageBox.Show(connection.State.ToString());


OdbcDataAdapter adapter = new OdbcDataAdapter();
adapter.SelectCommand = command;

adapter.Fill(dataSet);

}
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33465219
dmitran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmitranОшибка в коде возникает при обработке строки adapter.Fill(dataSet);

Exception на это пишет: ERROR [42000][Microsoft][Sql Server Driver][Sql Server]Must declare the variable '@login' ,но я ведь ее декларировал в строке command.Parameters.....

Помогите разобраться, мож чего-то не дописал...

string connectionString = "Driver={SQL Server};Server=NR\\MSSQLSERVER2000;Database=t1;Trusted_Connection=yes;" ;

string commandTextSelect = "SELECT Id, Login, Password, Access FROM stUsers WHERE (Login LIKE @Login)";
DataSet dataSet = new DataSet();
dataGrid1.DataSource = dataSet;

try {

OdbcCommand command = new OdbcCommand();
command.CommandText = commandTextSelect;

command.Parameters.Add(new System.Data.Odbc.OdbcParameter("@Login",System.Data.Odbc.OdbcType.Text,10,"Login"));

command.Parameters["@Login"].Value = textBox9.Text;

OdbcConnection connection = new OdbcConnection(connectionString);
command.Connection = connection;
connection.Open();
MessageBox.Show(connection.State.ToString());


OdbcDataAdapter adapter = new OdbcDataAdapter();
adapter.SelectCommand = command;

adapter.Fill(dataSet);

}

в строке (Login LIKE @Login)" конечно же (Login = @Login)" )

ошибка осталась та же...
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33465513
dmitran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гуру, подскажите, пожалуйста, в чем проблема...
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33465593
f45f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй вместо

Код: plaintext
string commandTextSelect = "SELECT Id, Login, Password, Access FROM stUsers WHERE (Login LIKE @Login)";

напиши

Код: plaintext
string commandTextSelect = "SELECT Id, Login, Password, Access FROM stUsers WHERE Login = ?";

затем

Код: plaintext
command.Parameters.Add("@Login",OdbcType.VarChar,  10 ).Value = TextBox9.Text;


и еще одно предположение . . .
Может быть Login нужен в connectiomString.
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33465640
dmitran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
f45fПопробуй вместо

Код: plaintext
string commandTextSelect = "SELECT Id, Login, Password, Access FROM stUsers WHERE (Login LIKE @Login)";

напиши

Код: plaintext
string commandTextSelect = "SELECT Id, Login, Password, Access FROM stUsers WHERE Login = ?";

затем

Код: plaintext
command.Parameters.Add("@Login",OdbcType.VarChar,  10 ).Value = TextBox9.Text;


и еще одно предположение . . .
Может быть Login нужен в connectiomString.

прототип connectionstring не содержит параметра @Login )

Та же ошибка...
Помогите, гуру, где вы?
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33465895
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
try:
Код: plaintext
1.
string commandTextSelect = "SELECT * FROM Permission WHERE (UserID LIKE ?)";
command.Parameters.Add(" ", OdbcType.Text).Value = "%ad%";
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33466450
dmitran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrewtry:
Код: plaintext
1.
string commandTextSelect = "SELECT * FROM Permission WHERE (UserID LIKE ?)";
command.Parameters.Add(" ", OdbcType.Text).Value = "%ad%";



переменную @Login необходимо сохранить, а не заменять на ?
вопрос звучал, как правильно ее декларировать (см. текст ошибки)...

проблема осталась.....
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33466472
BiGbother
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. какой дурак придумал юзать SSPI проверку вместе с прямой подачей логина? Вы уж определитесь - либо Trusted Auth (винда проверяет, имеет ли доступ к SQL серверу, тот кто залогинен) либо Plain (login/pass)
2. Нахрена ODBC юзать с MSSQL в .NET, когда нужно стремиться к импользованию pure .NET приложений и лучше использовать SqlAdapter.
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33466513
BiGbother
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итоговое рабочее проверенное решение такое:

в классе создаём новый метод вида

private void DoTheJob (string servername, string databasename, out DataSet ds)
{
string connString = "Server=" +servername+ ";Database=" +databasename+ ";Trusted_Connection=True;";
string selString = "SELECT Id, Login, Password, Access FROM stUsers WHERE Login LIKE '%Login%'";
SqlDataAdapter sqlda = new SqlDataAdapter(selString, connString);
ds = new DataSet("MyDataSet");
sqlda.Fill(ds);
}

А в другом методе, или где там ещё, юзаем его таким образом:

DataSet myDataSet = new DataSet("zzz");
DoTheJob("NERO\\MSSQLSERVER2000", "test1", out myDataSet);
dataGrid1.DataSource = myDataSet;

Вот и всё решение...
...
Рейтинг: 0 / 0
DataSet: трабл заполнения
    #33466524
dmitran
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, все получилось
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / DataSet: трабл заполнения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]