Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Получить параметр из MS SQL? / 8 сообщений из 8, страница 1 из 1
22.04.2005, 17:31
    #33030936
Сергей ДД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить параметр из MS SQL?
Здравствуйте.
Задача следующая. Из формы в хранимую процедуру MS SLQ 2000 передаются 2 параметра Login и Pwd. А она возвращает UserID соответствующий этим данным, если таковой имееться.
Вот текст хп:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE [dbo].[SP_UserLogin]
@Login varchar( 10 ),
@Pwd varchar( 10 ),
@ID int OUTPUT
AS
SELECT     @ID=UserID
FROM         dbo.V_Users
WHERE     (UserLogin = @Login) AND (UserPwd = @Pwd)
GO
На саму страницу выводить эти данные не нужно. Нужно только присвоить некоторой переменной значение этого @ID.

Вот текст страницы asp.net
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
dim strConnect as string
strConnect = "data source=Abs-Sergei; initial catalog=AbsSite; uid=godzilla; pwd=12345"
dim Connection as new SqlConnection(strConnect)
			
dim cmd as new SqlCommand("SP_UserLogin",Connection)
cmd.commandtype=commandtype.storedprocedure

dim objParam as SqlParameter

objParam=cmd.Parameters.Add("Login", SqlDbType.Varchar,  10 )
objParam.Direction=ParameterDirection.Input
objParam.Value="Guest"
	
objParam=cmd.Parameters.Add("Pwd", SqlDbType.Varchar,  10 )
objParam.Direction=ParameterDirection.Input
objParam.Value="12345"

objParam=cmd.Parameters.Add("ID")
objParam.Direction=ParameterDirection.Output
			
Connection.Open()
cmd.ExecuteReader()

dim result as string
result = cmd.parameters("ID").Value.ToString()

response.write(result)

При выполнении он выдает ошибку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: BC30311: Value of type 'Integer' cannot be converted to 'System.Data.SqlClient.SqlParameter'.

Source Error:
Line  45 : 			objParam.Value="12345"
Line  46 : 			
Line  47 : 			objParam=cmd.Parameters.Add("ID")
Line  48 : 			objParam.Direction=ParameterDirection.Output
Line  49 :

Вопрос:
1) Где ошибку этого листинга?
2) Если кто знает и не если не сложно, можете подсказать код хранимой процедуры, которая бы если ничего не находила по введенным логину и паролю или если бы находила более 1 записи, то в качестве @ID возвращала бы 0 (ноль).

Заранее спасибо!
...
Рейтинг: 0 / 0
22.04.2005, 17:55
    #33030996
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить параметр из MS SQL?
1. не уверен, но м.б. objParam=cmd.Parameters.Add("ID", SqlDbType.Int)
2. можно проверять значение переменной @@rowcount после выполнения запроса
...
Рейтинг: 0 / 0
22.04.2005, 17:56
    #33031000
Sam Andrews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить параметр из MS SQL?
посмотри имена параметров, сравни с теми, которые в процедуре объявлены...

хинт: @

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

с уважением...
...
Рейтинг: 0 / 0
22.04.2005, 17:56
    #33031002
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить параметр из MS SQL?
1. + @ID int = 0 OUTPUT (в процедуре)
...
Рейтинг: 0 / 0
22.04.2005, 17:58
    #33031006
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить параметр из MS SQL?
Sam Andrewsкстати, перед извлечением оутпут параметров, датаридер надо закрывать...!!!
...
Рейтинг: 0 / 0
22.04.2005, 18:07
    #33031029
Sam Andrews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить параметр из MS SQL?
ну и само собой:

objParam=cmd.Parameters.Add("ID")

че это за конструкция?

с уважением...
...
Рейтинг: 0 / 0
22.04.2005, 18:17
    #33031062
Сергей ДД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить параметр из MS SQL?
ЛЮДИ!!! СПАСИБО ОГРОМНЕЙШЕЕ!!!
Заработало.
И не ругайтесь, я еще только учусь!)
...
Рейтинг: 0 / 0
22.04.2005, 19:06
    #33031182
Rotansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить параметр из MS SQL?
Обратите внимание, Сергей ДД, что приложения нужно разрабатывать в соответствии с n-tier структурой. То что вы сейчас пытаетесь написать назвается Data Access Layer, слой доступа к данным. Это набор классов, необходимых для доступа к таблицам и видам.
Из статьи с gotdotnet.ru:
DAL-компоненты содержат методы, позволяющие по усмотрению вызывающего решать при работе с базой данных следующие задачи:

создавать записи в базе данных;
читать записи из базы данных и возвращать данные бизнес-объектов вызвавшему компоненту;
обновлять записи базы данных измененными данными бизнес-объектов, переданными вызвавшим компонентом;
удалять записи базы данных.
Методы, решающие перечисленные выше задачи, часто называют CRUD-методами (create, read, update, delete).

Кроме того, в DAL-компонентах имеются методы, реализующие бизнес-логику работы с базой данных. Например, в DAL-компоненте может присутствовать метод поиска наиболее продаваемого товара по каталогу за текущий месяц.

Обычно DAL-компонент работает с одной базой данных и инкапсулирует операции обработки данных, относящихся к одной таблице или группе взаимосвязанных таблиц базы данных. Например, можно определить один DAL-компонент для работы с таблицами Customer и Address, а другой - для работы с таблицами Orders и OrderDetails.

1. Начните разрабатывать приложения "по правилам" раньше чем позже.
2. Есть специальные программы для автоматического создания всех классов и всех хранимых процедур - в качестве входных параметров используется только база данных с внешними ключами (напр. LLBLGen).
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Получить параметр из MS SQL? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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