Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/32: Рейтинг темы: голосов - 32, средняя оценка - 4.88
luetick
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 3
1

Вызов хранимой процедуры

26.06.2011, 19:43. Просмотров 5871. Ответов 6
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста.
Мне нужно сделать, чтобы на форму в ЛистБокс выводилась информация, которую выбирает с сервера хранимая процедура.
процедура analiz_tovara
код
C#
1
2
3
4
5
6
7
8
9
10
11
ALTER PROCEDURE dbo.analiz_tovara
    /*
    (
    @parameter1 int = 5,
    @parameter2 datatype OUTPUT
    )
    */
AS
    SET NOCOUNT ON
    select Наим_товара, Поступление_товара.Ном_накл, Поступление_товара.Наим_пост from Поступление_товара inner join Пост_товар on Поступление_товара.Ном_накл=Пост_товар.Ном_накл;
    RETURN
на форме вызываю таким образом (правда, сама не знаю, правильно это или нет):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public Form2()
        {
            InitializeComponent();               
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = @"Data Source=LUETICK-677E207\SQLEXPRESS.Склад строительных материалов.dbo;Integrated Security=True";
            SqlCommand myCommand=conn.CreateCommand();
            myCommand.CommandType=CommandType.StoredProcedure; 
            myCommand.CommandText="[analiz_tovara]";
            conn.Open();
            SqlDataReader dataReader=myCommand.ExecuteReader();
            while (dataReader.Read())
            {
                listBox1.Items.Add(dataReader.GetString(1)+""+dataReader.GetString(2));
            }
            dataReader.Close();
            conn.Close();
        }
при обработке выдает ошибку - сервер не найден или недоступен. Может, я неправильно устанавливаю соединение с сервером? пробовала несколько раз по разному, всё время что-то неправильно.
Подскажите, пожалуйста, очень надо, завтра курсовую сдавать.
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2011, 19:43
Ответы с готовыми решениями:

Вызов хранимой процедуры
Как вызвать хранимую процедуру в БД Access через Viasual Studio 2015 Community. Хранимые процедуры:...

Вызов хранимой процедуры
Привет! У меня есть база данных и запрос, написанный на SQL в сишарпе. Таблица из базы данных...

Вызов хранимой процедуры в с#
Хочу обновить бд с помощью хранимой процедуры ALTER procedure . @id_TP int, @id_worker int, @DT...

Вызов хранимой процедуры
Добрый день У меня есть процедура хранимая в MySQL на добавление строки CREATE DEFINER =...

Вызов хранимой процедуры
есть хранимая процедура. Надо ее вызвать и что бы она заменила один столбец в БД. если что проект...

6
LMM
51 / 51 / 2
Регистрация: 17.02.2011
Сообщений: 188
Записей в блоге: 10
27.06.2011, 01:52 2
Если у тебя файл БД хранится не локально, а на сервере, то твоя строчка подключения по-моему не верна:
Цитата Сообщение от luetick Посмотреть сообщение
conn.ConnectionString = @"Data Source=LUETICK-677E207\SQLEXPRESS.Склад строительных материалов.dbo;Integrated Security=True";
Я в программировании не силен (а уж в C# и подавно), но попробуй как-нибудь так:
C#
1
conn.ConnectionString = @"Server=Ссылка_к_серверу; Integrated Security=SSPI; Database=Склад стоительных материалов.dbo");
P.S. Сильно не бить, за мой возможный бред
1
luetick
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 3
27.06.2011, 02:32  [ТС] 3
у меня база данных хранится на моем компьютере...

У меня есть три варианта вызова соединения с сервером. но ни один из них не работает.
Подключение, которое у меня по умолчанию:
@"Data Source=LUETICK-677E207\SQLEXPRESS;Initial Catalog="Склад строительных материалов";Integrated Security=True"
в этом случае компилятор требует точку с запятой после слова "склад". Взятие всего выражения "склад строительных материалов" в квадратные скобки (так как тут есть пробелы) не помогает.

Вариант, который в книге:
"Data Source=LUETICK-677E207\SQLEXPRESS;AttachDbFilename="+@"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Склад строительных материалов.mdf"+";Integrated Security=True"
просто тупо создается новая база данных с таким адресом в моем компутере. Соответственно, это не то что мне надо.

Третий вариант я уже писала, тоже не работает. Кстати, в этом случае приложение компилируется, но не запускается. То есть в ходе построения пишется, что всё успешно и готово, но приложение не появляется.
(((( такое ощущение, что я совсем чуть-чуть где-то не догоняю
0
luetick
0 / 0 / 0
Регистрация: 24.06.2011
Сообщений: 3
27.06.2011, 02:45  [ТС] 4
Цитата Сообщение от luetick Посмотреть сообщение
Кстати, в этом случае приложение компилируется, но не запускается. То есть в ходе построения пишется, что всё успешно и готово, но приложение не появляется.
после прошествия минут 5 появляется ошибка
0
Миниатюры
Вызов хранимой процедуры  
s-kvv
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
27.06.2011, 09:19 5
C#
1
conn.ConnectionString = @"Data Source=LUETICK-677E207\SQLEXPRESS;Inital Catalog=Склад строительных материалов.dbo;Integrated Security=True";
Если не ошибаюсь, то как-то так
Создайте текстовый файл *.udl запустите его, создайте подключение к чему нужно, а потом его в текстовои редакторе посмотрите - там будет сторока подключения
0
Ice_and_Fire
484 / 296 / 36
Регистрация: 22.06.2011
Сообщений: 929
27.06.2011, 09:53 6
Цитата Сообщение от luetick Посмотреть сообщение
[...]
Подключение, которое у меня по умолчанию:
C#
1
@"Data Source=LUETICK-677E207\SQLEXPRESS;Initial Catalog="Склад строительных материалов";Integrated Security=True"
в этом случае компилятор требует точку с запятой после слова "склад". Взятие всего выражения "склад строительных материалов" в квадратные скобки (так как тут есть пробелы) не помогает.
[...]
Тут ошибка в том, что в строке нужно кавычки продублировать
C#
1
Catalog=""Склад строительных материалов"";
0
LMM
51 / 51 / 2
Регистрация: 17.02.2011
Сообщений: 188
Записей в блоге: 10
27.06.2011, 23:39 7
Перечитал все посты... залез в Visual Studio... сначало в VB.net... потом в C#.net...
И там и там подключил БД обычным способом, через "морду"... потом посмотрел строку подключения... и выяснилось что и там и там они одинаковые^^
Получается, надо просто прописать, так:
C#
1
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Обсалютный_путь\Имя_БД.mdb;Persist Security Info=True"
Обсалютный_путь - полный путь к файлу, начиная с буквы диска: "C:\Папка\Другая Папка\БД.mdb
По идее должно работать.
Я на VB программно БД по сути так же подключаю:
Visual Basic
1
2
3
Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Обсалютный_путь\Имя_БД.mdb"
Dim con As New OleDb.OleDbConnection(conString)
Dim command As New OleDb.OleDbCommand("SELECT * FROM [Имя_таблицы]", con)
Ну и так далее
0
27.06.2011, 23:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2011, 23:39

Вызов хранимой процедуры в форме
Доброго времени суток. В C# я ламер. Стоит visual studio, SQL Server 2008. Есть хранимая процедура...

Вызов хранимой процедуры из MySQL
Сразу скажу что в vs 2010 работал мало и только перехожу на него с Delphi, поэтому прошу сильно не...

Вызов хранимой процедуры в FirebirdSQL
Вызываю хранимую процедуру в FirebirdSQL. Вот так: FbCommand res = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru