С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
1

Подключение базы данных MS SQL Server 2008

01.06.2014, 18:08. Показов 3292. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Имеется VS 2013 Pro и MS SQL Server 2008. База данных сама уже собрана, интерфейс создан, но проект мой повис на несколько месяцев, уже сил нет и препод не может никак помочь. Как их связать?
Я не могу даже ничего нагуглить толком. Большая часть мануалов идет через Grid, а он мне нафиг не нужен. Лишь взять данные из таблиц и положить обратно.
Саму базу вроде подключил через мастера (обозревателе есть), в Webconfig есть прописанный ConnectionString, но я совершенно не понимаю, как мне из моего веб-приложения обратиться к таблице.
Пробовал такой код:
C#
1
2
3
4
5
6
7
using (SqlConnection cn = new SqlConnection(@"Data Source=LSI\SOCIONICS;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=257262"))
            {
                cn.Open();
 
                // Работа с базой данных
                cn.Close();
            }
Но у меня выдает ошибку на SqlConnection "Ошибка 1 Не удалось найти имя типа или пространства имен "SqlConnection" (пропущена директива using или ссылка на сборку?)"

В общем, объясните, пожалуйста, как для тупых, что мне надо сделать, чтобы всё это начало взаимодействовать. Опыта работы с БД вообще нет никакого.

Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2014, 18:08
Ответы с готовыми решениями:

Подключение VS C# 2008 и SQL Server 2008
Добрый день уважаемые форумчане... Мне нужна ВАША помощь... Я искал в инете кучу информации о...

Подключение к SQL Server 2008
Очень волнует вопрос как правильно организовать подключение к SQL. Устанавливать соединение на...

Подключение к БД MS SQL Server 2008
пробую в проэкте VS 2008 подключить БД на SQL Server 2008. На компе стоит именованный инстанс -...

Подключение по сети к MS SQL server 2008
Добрый день! На компьютере имеется свеже-установленный MS SQL server 2008. Имя сервера:...

9
Неадекват
1496 / 1233 / 247
Регистрация: 02.04.2010
Сообщений: 2,804
01.06.2014, 18:10 2
Добавьте строчку:
C#
1
using System.Data.SqlClient;
1
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
01.06.2014, 18:20  [ТС] 3
Эхх... Создал вот такой запрос, вроде ошибок нет, но никаких данных не появилось в таблице...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            Name = TextBox1.Text;
            Age = TextBox2.Text;
            City = TextBox3.Text;
 
            using (SqlConnection cn = new SqlConnection(@"Data Source=LSI\SOCIONICS;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=257262"))
            {
                cn.Open();
                SqlCommand sqlCommand = new SqlCommand("INSERT INTO dbo.User (FIO, Age, Country) VALUES (Name, Age, City)", cn);
                cn.Close();
            }
        }
0
Неадекват
1496 / 1233 / 247
Регистрация: 02.04.2010
Сообщений: 2,804
01.06.2014, 18:29 4
Забыли выполнить команду
C#
1
sqlCommand.ExecuteNonQuery();
1
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
01.06.2014, 18:30  [ТС] 5
Не забыли, а вовсе не знали .____.
На синтаксис ругается около "User". Вроде видео смотрю параллельно на youtube, у меня так же написано..
0
Заблокирован
01.06.2014, 18:37 6
Dreiser, а разве такой запрос будет работать? По-моему нужно в одинарные кавычки заключить:

C#
1
2
3
4
            string query = @"INSERT INTO dbo.User (FIO, Age, Country) VALUES
                
                ('"+TextBox1.Text+"','"+ TextBox2.Text +"','"+ TextBox3.Text+"')";
            SqlCommand sqlCommand = new SqlCommand(query, cn);
0
Неадекват
1496 / 1233 / 247
Регистрация: 02.04.2010
Сообщений: 2,804
01.06.2014, 18:37 7
Попробуйте заключить их в квадратные скобки [dbo].[User] и Values - в кавычки.
1
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
02.06.2014, 13:08  [ТС] 8
Вот так заработало!
Спасибо, о, великие волшебники!

C#
1
2
3
4
5
6
7
8
9
10
11
12
using (SqlConnection cn = new SqlConnection(@"Data Source=LSI\SOCIONICS;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=257262"))
            {
                SqlCommand sqlCommand = new SqlCommand("INSERT INTO [User](FIO, Age, Country) VALUES(@Name, @Age, @City)", cn);
                sqlCommand.Parameters.AddWithValue("@Name", TextBox1.Text);
                sqlCommand.Parameters.AddWithValue("@Age", TextBox2.Text);
                sqlCommand.Parameters.AddWithValue("@City", TextBox3.Text);
 
                cn.Open();
 
                sqlCommand.ExecuteNonQuery();
                cn.Close();
            }
Добавлено через 18 часов 23 минуты
А если я беру оператор SELECT, как мне некоторой переменной присвоить результат запроса?
ExecuteNonQuery() возвращает кол-во задействованных строк...
0
Заблокирован
02.06.2014, 13:17 9
Dreiser, например:

C#
1
2
3
4
5
6
7
8
                
var Читатель = sqlCommand.ExecuteNonQuery();
while (Читатель.Read() == true)
                {
//тут считываете туда, куда удобно, например:
                    dataGridView2.Rows.Add(Читатель.GetValue(0), Читатель.GetValue(1), Читатель.GetValue(2), Читатель.GetValue(3));
                }
Читатель.Close();
0
8 / 8 / 7
Регистрация: 14.10.2012
Сообщений: 179
02.06.2014, 13:58  [ТС] 10
C#
1
2
3
4
5
6
7
var Читатель = sqlCommand.ExecuteNonQuery();
while (Читатель.Read() == true)
                {
//тут считываете туда, куда удобно, например:
                    dataGridView2.Rows.Add(Читатель.GetValue(0), Читатель.GetValue(1), Читатель.GetValue(2), Читатель.GetValue(3));
                }
Читатель.Close();
У меня нет такого метода Read.. еще какой-то using нужен?

Добавлено через 6 минут
C#
1
2
3
4
5
6
7
8
SqlCommand AnswKoef = new SqlCommand("SELECT [Koef] FROM [AnswKoef] WHERE [Variant] = 1", cn);
                        cn.Open();
                        var read = AnswKoef.ExecuteNonQuery();
                        while (read.Read() == true)
                        {
 
                        }
                        cn.Close();
Код
Ошибка	1	"int" не содержит определение для "Read". Не удалось найти метод  расширения "Read", принимающий первый аргумент типа "int"  (пропущена директива using или ссылка на сборку?)
Добавлено через 8 минут
Всё, разобрался. Другой метод нужен был, не ExecuteNonQuery()

C#
1
2
3
4
5
6
7
8
SqlCommand AnswKoef = new SqlCommand("SELECT [Koef] FROM [AnswKoef] WHERE [Variant] = 1", cn);
                        cn.Open();
                        var read = AnswKoef.ExecuteReader();
                        while (read.Read() == true)
                        {
                            chet = read.GetFloat(0);
                            cn.Close();
                        }
Добавлено через 6 минут
Точнее, так:
C#
1
2
3
4
5
6
7
8
9
SqlCommand AnswKoef = new SqlCommand("SELECT [Koef] FROM [AnswKoef] WHERE [Variant] = 3", cn);
                        cn.Open();
                        var read = AnswKoef.ExecuteReader();
                        while (read.Read() == true)
                        {
                            chet = read.GetFloat(0);
                            read.Close();
                        }
                        cn.Close();
Правда теперь такая проблема: при пошаговой проверке работает, а при обычном запуске выдает ошибку "Недопустимая попытка вызвать Read при закрытом устройстве чтения."

Добавлено через 8 минут
Аха, нашел, в чем был неправ.
C#
1
2
3
read.Close();
}
cn.Close();
нужно сделать
C#
1
2
3
}
read.Close();
cn.Close();
0
02.06.2014, 13:58
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2014, 13:58
Помогаю со студенческими работами здесь

Запрос из базы возвращает в reader значение поля типа date как datetime +MS SQL Server 2008
В таблице есть поле типа Date, в таблицу добавлены записи, в это поле добавлена запись только с...

Работа с базой данных MS SQL Server 2008 r2 на C#
Подскажите плиз создала БД в sql sever через менеджмент студио. написала программно запрос запрос...

Создание базы данных в SQL Management Studio 2008
Нужно создать базу данных в SQL Managmment Studio 2008 при нажатии на клавишу пробовал вот так ...

Настройка SQL Server 2008 для работы с SQL Server Management Studio
Доброго времени суток. Подскажите пожалуйста, что нужно сделать для того, чтобы SQL Server...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru