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

Создание dll для связи бд с API

06.02.2015, 10:19. Показов 7242. Ответов 60
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!Надо написать dll для связи БД c формой скажем так, единственное что я знаю это подключение к SQL базе с помощью Connection(сделал по примеру). А вот что делать дальше,я не знаю. Подскажите пожалуйста что дальше делать, у кого есть опыт в написании таких программ
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Data.SqlClient;
using System.Data;
 
namespace Connection
{
    class Program
    {
        static void Main(string[] args)
        { string connStr = @"Data Source=(local)\SQLEXPRESS;  Initial Catalog=Northwind; Integrated Security=True";
            SqlConnection conn = new SqlConnection(connStr);
            try
            {
                conn.Open();
            }
            catch (SqlException se)
            {
                Console.WriteLine("Ошибка подключения:{0}", se.Message);
                return;
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2015, 10:19
Ответы с готовыми решениями:

Api для связи сайта с android приложением
Существует андроид приложение, в котором хранится информация о пользователе. В приложении...

Dll-ка для связи c IFix
Появилась необходимость "воздействовать" на IFix из сторонних программ. Например, взвести...

Создать DLL-ку для связи 1С с сайтом
Вроде на среднем уровне пишу на QT, но никогда не имел дело с созданием DLL-ок. Сейчас встала...

Подключение внешней библиотеки (dll) для работы с внешним API
Добрый день, друзья! Начал недавно изучать C#. Опыта мало. Учусь. Теперь к вопросу: Есть...

60
654 / 591 / 171
Регистрация: 17.07.2012
Сообщений: 1,678
Записей в блоге: 1
06.02.2015, 10:24 2
Цитата Сообщение от Impossible333 Посмотреть сообщение
А вот что делать дальше,я не знаю.
А что надо дальше? И зачем?
0
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
06.02.2015, 10:34  [ТС] 3
Функции для работы с БД (запись, DataSet, ADO Query)
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
06.02.2015, 12:41 4
Цитата Сообщение от Impossible333 Посмотреть сообщение
написать dll для связи БД c формой
Библиотека не пишется для связи именно с формой. Библиотека - это некий черный ящик, направленный на решение неких задач (в данном случае на работу с БД-добавление, удаление, редактирование записей в таблице (ах) БД), и методам, инкапсулированным в библиотеки глубоко по барабану, что используется как отображение - консоль, форма, WPF и так далее.
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
06.02.2015, 15:03  [ТС] 5
Понятно, не подскажите с чего начать?
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
06.02.2015, 15:50 6
Лучший ответ Сообщение было отмечено Impossible333 как решение

Решение

Цитата Сообщение от Impossible333 Посмотреть сообщение
не подскажите с чего начать?
Подскажу. Например, с изучения основ ADO.NET.
Посмотрите тему ниже, там есть пример класса для работы с базой. И этому классу абсолютно безразлично, с чем вы будете его использовать - с консолью, формой или еще чем.
Добавление и удаление данных из таблицы
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
09.02.2015, 01:08  [ТС] 7
Здравствуйте еще раз!Насчет связи с БД! Начал писать дллку, и вписал такой код,но что-то он ругается, не подскажите почему?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Data.SqlClient;
using System.Data;
 
namespace Connection
{
    class Program
    {
        static void Main(string[] args)
        { string connStr = @"Data Source=(local)\SQLEXPRESS;  Initial Catalog=Northwind; Integrated Security=True";
            SqlConnection conn = new SqlConnection(connStr);
            try
            {
                conn.Open();
            }
            catch (SqlException se)
            {
                Console.WriteLine("Ошибка подключения:{0}", se.Message);
                return;
            }
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
09.02.2015, 08:09 8
Цитата Сообщение от Impossible333 Посмотреть сообщение
что-то он ругается
А о чем говорит ошибка? На что ругается?
0
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
10.02.2015, 00:13  [ТС] 9
Error 1Invalid token 'try' in class, struct, or interface member declaration
Error 2 Invalid token '(' in class, struct, or interface member declaration
Error 3 A namespace cannot directly contain members such as fields or methods
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
10.02.2015, 13:57 10
Impossible333, по моему, у вас там фигурных скобок не хватает. Посчитайте их количество, открывающих должно быть столько же сколько и закрывающих.
0
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
10.02.2015, 22:16  [ТС] 11
Сделал по-другому теперь не ругается, только вопрос этот код я забил в дллку. Теперь создаю консольное приложение подключаю её и пытаюсь вызвать метод OpenCpnnection(); но не получается, не подскажите почему?что я делаю неправильно(код вот)
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
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ClassConnection_DB
{
    public class Class1
    {
 
        public SqlConnection connect = null;
 
        public void OpenConnection(string connectionString)
        {
            connectionString = "@Data Source=(local);  Initial Catalog=Obuchen; Integrated Security=True";   
            connect = new SqlConnection(connectionString);
            try
            {
                connect.Open();
            }
            catch (SqlException se)
            {
                Console.WriteLine("Ошибка подключения:{0}", se.Message);
                
            }
 
        }
 
        public void CloseConnection()
        {
            connect.Close();
        }
    }
}
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
10.02.2015, 22:19 12
Цитата Сообщение от Impossible333 Посмотреть сообщение
что я делаю неправильно
Опишите структуру БД (ну или дайте ее), я сделаю вам пример тестовой dll. Так будет быстрее, ятд.
0
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
10.02.2015, 22:30  [ТС] 13
Можно в личку?

Добавлено через 7 минут
Хотя нет, как я пойму если Вы за меня всё сделаете! Дайте пожалуйста лучше направление или пример или же литературу какую-нибудь по теме
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
10.02.2015, 22:32 14
Цитата Сообщение от Impossible333 Посмотреть сообщение
Можно в личку?
Можно.
Цитата Сообщение от Impossible333 Посмотреть сообщение
как я пойму если Вы за меня всё сделаете!
Я вам комментарии сделаю)))
Цитата Сообщение от Impossible333 Посмотреть сообщение
Дайте пожалуйста лучше направление или пример или же литературу какую-нибудь по теме
Эндрю Троелсен, раздел по ADO.NET.
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
10.02.2015, 22:34  [ТС] 15
Благодарю, буду пробовать!
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
11.02.2015, 13:31 16
Лучший ответ Сообщение было отмечено Impossible333 как решение

Решение

Impossible333, вот примерный вариант. Проект либы и проект для проверки. Либа небольшая, всего три метода, но я не знаю что именно вам надо. При запуске тестового проекта в комбик выводятся все имена таблиц из БД, при выборе имени в грид выводится эта таблица. При изменении данных в гриде после нажатия кнопки Update таблица в БД обновляется.
Вложения
Тип файла: rar Архив WinRAR.rar (967.3 Кб, 23 просмотров)
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
17.02.2015, 18:21  [ТС] 17
Постарался исходя из своих знаний написать дллку с методом добавления новой записи в таблицу, но что-то не получается. Подскажите если кто знает в чем причина?
DLL
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
using System.Data.SqlClient;
 
namespace ConnectDB
{
    public class DBCommands
    {
        public SqlConnection conn = null;
 
        public void OpenConnection(string connectionString)
        {   connectionString=@"Data Source=(local);Initial Catalog=Obuchen; Integrated Security=True";
            conn=new SqlConnection(connectionString);
            conn.Open();
 
        }
 
        public void CloseConnection()
        {
            conn.Close();
        }
 
        public  void InsertUser(string user_name, int user_pas,int user_key)
        {
            //Оператор SQL
            string sql =string.Format("Insert Into users" + "( Имя_пользователя, Пароль, Уровень доступа) Values('{0}','{1}','{2}')");
            using (SqlCommand cmd = new SqlCommand(sql, this.conn))
            {
                cmd.EndExecuteNonQuery();
            }
        }
 
        }
 
 
 
    }
}
Попытка вызова
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using MathmyMethod;
using ConnectDB;
 
 
namespace ConsoleApplication4
{
     class Program
    {
        private static void Main(string[] args)
        {
         InsertUser("Stan", 123456,2);
      }
}
}
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
17.02.2015, 18:34 18
Цитата Сообщение от Impossible333 Посмотреть сообщение
но что-то не получается.
Что именно не получается?
Цитата Сообщение от Impossible333 Посмотреть сообщение
connectionString=@"Data Source=(local);
Мб
C#
1
Data Source=(local)\SQLEXPRESS;
0
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 69
17.02.2015, 18:46  [ТС] 19
Изменил, длл что-то не компилируется , выдает ошибку
Error 1 No overload for method 'EndExecuteNonQuery' takes 0 arguments
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
17.02.2015, 19:46 20
Цитата Сообщение от Impossible333 Посмотреть сообщение
cmd.EndExecuteNonQuery();
А вот это зачем? Может все-таки ExecuteNonQuery()?
1
17.02.2015, 19:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2015, 19:46
Помогаю со студенческими работами здесь

Компонента (DLL) для работы с ASP, с использованием WinInet API
написал компоненту (DLL) для работы с ASP, с использованием WinInet API, в частности...

Создание связи с ADOQuery для Access
Здравствуйте. У меня связывается Delphi и Access с помощью ADOQuery, ADOConnection, DataSource. ...

Программное создание связаной таблицы для связи с источником данных
Доброго времени суток уважаемые форумчане! Подскажите пож-та с помощью какого оператора можно...

Создание метода для обращения к API
Приветствую, форумчане. Очень нужна ваша помощь : дали мне тестовое задание, в котором из описания...

Создание Native API компонента для 1C
Задача состоит в том чтобы сделать внешний компонент который сможет обрабатывать события типа...

Создание dll в delphi для 1С
Есть dll без исходников, для нее есть интерфейс на delphi. Стоит задача подружить эту библиотеку с...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru