Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / CreateParameter / 13 сообщений из 13, страница 1 из 1
17.06.2013, 14:25
    #38300037
taaamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
Хочу запустить хранимую процедуру на БД. Читал, что нужно передавать аргументы через создание параметров. Когда делаю так
.CreateParameter("@FirstName", adVarChar, adParamInput)
то бейсик ругается и говорит, что типов таких не знает. Я так понимаю, что нужно что-то подключить. Как я смотрел вроде АДО нужно. Прав ли я? Или подключить что-то другое нужно? И как это адо подключить? Он же ActiveX компонент, а не библиотека. Помогите начинающему)
...
Рейтинг: 0 / 0
17.06.2013, 14:36
    #38300069
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
taaamerlan Когда делаю так
.CreateParameter("@FirstName", adVarChar, adParamInput)А перед точкой вакуум?

taaamerlanКак я смотрел вроде АДО нужно.Можно ADO, можно System.Data.SQLClient.SQLCommand taaamerlanИ как это адо подключить? Он же ActiveX компонент, а не библиотека.Библиотекой является любой dll-файл. ADODB есть и ActiveX и .NET. Дотнетовский не всегда присутствует в списке сборок, его можно найти поиском где-то в недрах Program Files\Common Files, а в референсах потом выбрать через обзор.
...
Рейтинг: 0 / 0
17.06.2013, 16:25
    #38300323
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
taaamerlan, забудь про ADO и про ActiveX. Используй ADO.NET классы SqlCommand/SqlParameter. Или родные контролы ASP.NET работающие с БД (например, SqlDataSource). А еще лучще начни учить Entity Framework.
...
Рейтинг: 0 / 0
18.06.2013, 17:22
    #38302013
taaamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
всем спасибо. Я разобрался делаю так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Imports Microsoft.VisualBasic
Imports System.Data.SqlClient
Imports System.Data
Public Sub registrate()
        Dim con As New SqlConnection
        con.ConnectionString = ConfigurationManager.ConnectionStrings("(local)").ConnectionString

        Dim comand As New SqlCommand
        comand.CommandType = Data.CommandType.StoredProcedure
        comand.Connection = con
        comand.Parameters.Add("@FirstName", SqlDbType.VarChar, 20, FirstName)
        comand.Parameters.Add("@LastName", SqlDbType.VarChar, 20, LastName)



    End Sub
...
Рейтинг: 0 / 0
18.06.2013, 18:18
    #38302115
taaamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
хах пишет Процедура или функция "UserRegistration" ожидает параметр "@FirstName", который не был указан.
я где-то ошибся?
...
Рейтинг: 0 / 0
18.06.2013, 18:24
    #38302122
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
taaamerlan, значение параметру нужно еще передать. Например:
Код: vbnet
1.
2.
3.
4.
5.
comand.Parameters.Add("@FirstName", SqlDbType.VarChar, 20, FirstName)
comand.Parameters("@FirstName").Value = "Ivan"

comand.Parameters.Add("@LastName", SqlDbType.VarChar, 20, LastName)
comand.Parameters("@LastName").Value = "Ivanov"
...
Рейтинг: 0 / 0
18.06.2013, 18:37
    #38302148
taaamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
bazile,

я думал последний аргумент передает значение в add. Сейчас зашел сказать, что уже решил проблему, но спасибо за помошь). Я сделал также, но мой код немного понятнее)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
        comand.CommandType = Data.CommandType.StoredProcedure
        comand.Connection = con
        With comand.Parameters
            .Add("@FirstName", VarChar, 20)
            .Item("@FirstName").Value = FirstName
            .Add("@LastName", VarChar, 20)
            .Item("@LastName").Value = LastName
            .Add("@TelNumber", VarChar, 30)
            .Item("@TelNumber").Value = TelNumber
            .Add("@Email", VarChar, 50)
            .Item("@Email").Value = Email
            .Add("@Skype", VarChar, 50)
            .Item("@Skype").Value = Skype
            .Add("@VK", VarChar, 50)
            .Item("@VK").Value = VK
            .Add("@Password", VarChar, 50)
            .Item("@Password").Value = Password
        End With
        comand.CommandText = "[UserRegistration]"
        con.Open()
        comand.ExecuteNonQuery()
        comand.Dispose()
...
Рейтинг: 0 / 0
18.06.2013, 18:41
    #38302156
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
taaamerlan,

... есть метод AddWithValue, если что ...
...
Рейтинг: 0 / 0
18.06.2013, 18:48
    #38302170
taaamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
carrotik,спасибо
...
Рейтинг: 0 / 0
18.06.2013, 18:53
    #38302179
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
taaamerlan, советую не увлекаться конструкцией With. По моему опыту она создает больше проблем чем решает.
...
Рейтинг: 0 / 0
18.06.2013, 18:55
    #38302189
taaamerlan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
bazile,
в данном случае не лучше ли ее применить?
...
Рейтинг: 0 / 0
18.06.2013, 20:56
    #38302288
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
кто ж тебя научил вызывать Dispose так вот? без блока using. Уверен что ресурсы освободятся если произойдет ошибка во время запроса?
...
Рейтинг: 0 / 0
18.06.2013, 20:59
    #38302291
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CreateParameter
а сори ты ж школьник вроде...забудь мои вопросы
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / CreateParameter / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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