Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/47: Рейтинг темы: голосов - 47, средняя оценка - 4.77
 Аватар для CSharp
51 / 51 / 14
Регистрация: 12.01.2013
Сообщений: 779
MS SQL

Создание класса для работы с БД

29.03.2015, 18:30. Показов 8973. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, не могу разобраться, мне надо написать класс, для работы с БД, там должно быть:
1) соединение с БД, и закрытия БД,
2) функции которые добавляет в БД удаляет и изменяет в БД
вот я код написал
C#
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
28
29
30
using System;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Windows.Forms;
 
namespace Диплом
{
    class connect_db
    {
        private string db = @"Data Source=<SOUL>;Initial Catalog=<fond>;Integrated Security=True";
        private OleDbConnection old = new OleDbConnection(@"Data Source=<SOUL>;Initial Catalog=<fond>;Integrated Security=True");
        public connect_db()
        {
 
            try
            { 
               old.Open();
            }
            catch 
            {
               MessageBox.Show("Ошибка БД");
            }
        }
 
       ~connect_db()
       {
          old.Close();
       }
        }
    }
Но чего -то он не соединиться с БД(использую MSSQL 2008) может вы подскажите вчем ошибка, и может поможете с написанием класса
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2015, 18:30
Ответы с готовыми решениями:

Создание локальной БД. Создание класса для работы с БД. Ошибка подключения к БД
Доброго времени суток! Нужно создать БД и создать класс для работы с ним - методы: добавление, удаления, просмотр самой базы,...

Создание класса для работы с дробями
Напишите программу калькулятор, который позволяет производить действия с дробями. Пользователь вначале вводит: числить первой дроби и затем...

Создание класса для работы с датой
Задание 10. Самостоятельно изучите тип данных DateTime, на основе которого необходимо создать класс для работы с датой. Данный класс...

5
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
29.03.2015, 18:44
Цитата Сообщение от CSharp Посмотреть сообщение
может поможете с написанием класса
Могу привести полный пример рабочего класса. Он сделан для SQLite, переделайте под своего провайдера. Ну и измените что требуется...
C#
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.IO;
using System.Data;
using System.Data.SQLite;
 
namespace Atlant_Utility_v1._0 {
    class AtlantDBOperator {
        //Путь к файлу БД
        private static string DB_NAME = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AtlantBase.db");
        //Строка соединения
        private static string CONNECT_STRING = string.Format("Data Source={0}", DB_NAME);
 
        //Метод добавления данных в БД(используется при разработке)
        public static void AddDataToBase(string code, List<byte> data) {
            //Строка команды вставки записи
            string insertCmd = string.Format("INSERT INTO CFGTable VALUES('{0}', @data)", code);
            using (SQLiteConnection cnn = new SQLiteConnection(CONNECT_STRING)) {
                cnn.Open();
                using (SQLiteCommand cmd = new SQLiteCommand(insertCmd, cnn)) {
                    SQLiteParameter param = new SQLiteParameter("@data", DbType.Binary);
                    param.Value = data.ToArray();
                    cmd.Parameters.Add(param);
                    cmd.ExecuteNonQuery();
                }
            }
        }
        //Метод получения данных об имеющихся в БД записях
        public static List<string> GetAllProductCodes() {
            //Строковый выходной массив
            List<string> products = new List<string>();
            //Строка команды выборки
            string selectCmd = "SELECT productCode FROM CFGTable";
            //Выборка данных из БД
            using (SQLiteConnection cnn = new SQLiteConnection(CONNECT_STRING)) {
                cnn.Open();
                using (SQLiteCommand cmd = new SQLiteCommand(selectCmd, cnn)) {
                    SQLiteDataReader dr = cmd.ExecuteReader();
                    //Проверка на наличие данных
                    if (!dr.HasRows) {
                        throw new ArgumentException("Data not present!");
                    }
                    while (dr.Read()) {
                        products.Add((string)dr["productCode"]);
                    }
                }
            }
            return products;
        }
        //Метод чтения одного файла данных из БД(в формате строкового массива)
        public static string[] GetAllConfigLines(string code) {
            //Строка команды выборки
            string selectCmd = string.Format("SELECT data FROM CFGTable WHERE productCode='{0}'", code);
            //Маассив байт для данных
            List<byte> tempList = new List<byte>();
            //Строковый выходной массив
            List<string> configLines = new List<string>();
            //Выборка данных из БД
            using (SQLiteConnection cnn = new SQLiteConnection(CONNECT_STRING)) {
                cnn.Open();
                using (SQLiteCommand cmd = new SQLiteCommand(selectCmd, cnn)) {
                    SQLiteDataReader dr = cmd.ExecuteReader();
                    //Проверка на наличие данных
                    if (!dr.HasRows) {
                        throw new ArgumentException("Data not present!");
                    }
                    while (dr.Read()) {
                        tempList.AddRange((byte[])dr["data"]);
                        break;
                    }
                }
            }
            //Построчное чтение из потока в памяти
            using (MemoryStream ms = new MemoryStream(tempList.ToArray())) {
                using (StreamReader sr = new StreamReader(ms, Encoding.Default)) {
                    while (sr.Peek() != -1) {
                        configLines.Add(sr.ReadLine());
                    }
                }
            }
            //Возврат массива строк
            return configLines.ToArray();
        }
    }
}
0
 Аватар для CSharp
51 / 51 / 14
Регистрация: 12.01.2013
Сообщений: 779
29.03.2015, 18:47  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
SQLite
это не MS SQL ?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
29.03.2015, 18:51
Цитата Сообщение от CSharp Посмотреть сообщение
это не MS SQL ?
Нет. Другой провайдер. Но принцип работы у всех примерно одинаков (в конце концов, наследуются от общих базовых классов).
0
 Аватар для CSharp
51 / 51 / 14
Регистрация: 12.01.2013
Сообщений: 779
29.03.2015, 19:29  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Нет. Другой провайдер. Но принцип работы у всех примерно одинаков (в конце концов, наследуются от общих базовых классов).
а как можно узнать @"Data Source=<SOUL>;Initial Catalog=<fond>;Integrated Se вот это, где эту строку искать ?
0
87 / 55 / 15
Регистрация: 01.10.2010
Сообщений: 492
29.03.2015, 20:46
Цитата Сообщение от CSharp Посмотреть сообщение

try
{
old.Open();
}
catch
{
MessageBox.Show("Ошибка БД");
}

Переделать на

C#
1
2
3
4
5
6
7
8
try 
{ 
old.Open(); 
} 
catch (Exception ex)
{ 
MessageBox.Show(ex.Message); 
}
если выдаёт что-то вроде этого "[ConnectionOpen (Connect()).]SQL Server не существует, или доступ запрещен.", то значит косяк в строке соединения. Например не то имя сервера (точно можно узнать в Managment Studio) или базы данных
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2015, 20:46
Помогаю со студенческими работами здесь

Создание класса для работы с матрицей
Привет всем!!!! Уважаемые!! Не могли бы вы мне помочь написать програмку! Вот на такую тему: Программирование вычислительныых...

Создание класса для работы со строками
Помогите пжл написать программу: Создать класс для работы сo строками. Разработать следующие элементы класса: a. Поля: ...

Создание класса для работы с денежными суммами
Создать класс Money для работы с денежными суммами. Сумма должна быть представлена массивом, каждый элемент которого - десятичная цифра....

Создание класса для работы с двусвязным списком
Помогите, пожалуйста, построить класс для работы с двусвязным списком. Элементы списка – действительные числа. Создать список List1,...

Создание класса для работы с несколькими таблицами БД
Добрый вечер форумчане. Помогите с такой как я думаю не большой(но у меня к сожалению не как не выходит) проблемой. Нужно сделать так...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 11.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru