Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
19 / 20 / 8
Регистрация: 27.11.2010
Сообщений: 323

Клиент Сервер: как при запуске сервера указать путь до базы и подключиться к ней

11.12.2012, 01:48. Показов 1217. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть сервер
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using System.Runtime.Remoting.Channels.Http;
using System.Data.OleDb;
...
указываем путь к базе данных
private void button1_Click(object sender, EventArgs e)
        {
            OleDbConnection con = new OleDbConnection();
            OpenFileDialog open = new OpenFileDialog();
            if (open.ShowDialog() == DialogResult.Cancel) return;
            // Строка подключения
            con.ConnectionString = String.Format(
            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", open.FileName);
            try
            {
                con.Open();
                textBox1.Text = open.FileName.ToString();
                Server.Properties.Settings.Default.Server = textBox1.Text;
                MessageBox.Show("Соединение установленно", Text);
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
            try
            {
                ChannelServices.RegisterChannel(new HttpChannel(60000));//прослушиваем канал
                RemotingConfiguration.RegisterWellKnownServiceType(typeof(Server_access.ServerAccess1), "met", WellKnownObjectMode.SingleCall);
                textBox2.Text += "Ожидание подключения...";
            }
            catch
            {
                MessageBox.Show("Соединение не установлено!");
            }
        }
ддл файл созданный через класс либрари выглядит
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
89
90
91
92
93
94
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using System.Data;
using System.Data.Common;
using System.Net.Sockets;
using System.Net;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using System.Runtime.Serialization.Formatters.Binary;
 
namespace Server_access
{
 
    public class ServerAccess1 : MarshalByRefObject
    {
        string sql_s = "Data Source=HELLSING\\SQLEXPRESS;Initial Catalog=praktica;Integrated Security=True;";
        //string g = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=kurs_2.mdb;";//указываем строку соединения
        //OleDbConnection con;
        SqlConnection con;//скул или аксесс не важно 
        public string Server_k(string s)
        {
            Console.WriteLine("Проверка подключения ");
            Console.WriteLine(s);
            return s;
        }
        public DataTable ServerMethod1(string s,string f)
        {
            //con = new OleDbConnection(g);
            con = new SqlConnection(sql_s);
            con.Open();
            Console.WriteLine("Вызов " + f);
            StreamWriter filer = new StreamWriter(File.Open("test.txt", FileMode.Append));
            filer.WriteLine("Вызов " +f);
            //OleDbDataAdapter da1 =new OleDbDataAdapter(s,con);
            SqlDataAdapter da1 = new SqlDataAdapter(s, con);
            DataTable dt1 = new DataTable();
            da1.Fill(dt1);
            filer.Close();
            filer.Dispose();
            con.Close();
            return dt1;            
        }
        public Int32 ServerZaprosi(string s, int num_t, int kol_t, string f)
        {
            int i = 0;
            //con = new OleDbConnection(g);
            con = new SqlConnection(sql_s);
            con.Open();
            Console.WriteLine("Вызов " + f);
            StreamWriter filer = new StreamWriter(File.Open("test.txt", FileMode.Append));
            filer.WriteLine("Вызов " + f);
            //OleDbCommand zap1 = new OleDbCommand(s, con);
            SqlCommand zap1 = new SqlCommand(s, con);
            if (zap1.ExecuteNonQuery() == 1)
            {
                f = "Операция успешно выполнена!";
                filer.WriteLine(f);
                filer.WriteLine("");
                s = "SELECT Tovar.Nomer_T, Tovar.Kol FROM Tovar WHERE (((Tovar.Nomer_T)=" + num_t + "))";
                //OleDbCommand oleCmd4 = new OleDbCommand(s, con);
                //OleDbDataReader read_kol = oleCmd4.ExecuteReader();
                SqlCommand oleCmd4 = new SqlCommand(s, con);
                SqlDataReader read_kol = oleCmd4.ExecuteReader();
                int f4 = 0;
                while (read_kol.Read())
                {//if((Int32)read_kol["Kol"]!=0)
                    f4 = (Int32)read_kol["Kol"];
                }
                s = "UPDATE Tovar SET Tovar.Kol = " + (f4 - kol_t) + " WHERE Tovar.Nomer_T = " + num_t + "";
                //OleDbCommand zap2 = new OleDbCommand(s, con);
                con.Close();
                con.Open();
                SqlCommand zap2 = new SqlCommand(s, con);
                if (zap2.ExecuteNonQuery() == 1)
                    Console.WriteLine("Обновление успешно.");
                filer.Close();
                filer.Dispose();
                i = 1;
            }
            else
            {
                f = "Ошибка выполнения команды!";
                filer.WriteLine(f);
                filer.WriteLine("");
                i = 0;
            }
            filer.Close();
            filer.Dispose();
            con.Close();
            return (i);
        }
    }
}
клиент выглядит
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using System.Net;
using System.Collections;
using System.Threading;
 
namespace Учет_и_реализация_товаров
{
    public partial class Form1 : Form
    {
        public int n_s; 
        IPHostEntry ipEntry = Dns.GetHostEntry(Dns.GetHostName());
        IPAddress addr;
        string g, s, f,ipconfig;
        TcpChannel chan;
        Server_access.ServerAccess1 login;
                        
        public Form1()
        {
            ip();
            addr = ipEntry.AddressList[0];
            f = "IP: " + addr.ToString();
            chan = new TcpChannel(); 
            InitializeComponent();
        }
        public void ip() 
        {
            StreamReader objReader = new StreamReader("ipconfig.txt");
            string sLine = "";
            ArrayList arrText = new ArrayList();
            while (sLine != null)
            {
                sLine = objReader.ReadLine();
                if (sLine != null)
                    arrText.Add(sLine);
            }
            objReader.Close();
 
            foreach (string sOutput in arrText)
                ipconfig += (sOutput);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Вы уверены что хотите выйти?", "Выход", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                this.Close();
                Application.Exit();
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                n_s = Convert.ToInt32(textBox1.Text);
                if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "")
                    MessageBox.Show("Введите логин и пароль!");
                else
                {
                    if (radioButton1.Checked == true)
                    {
                        f += "\r\nЗапрос на вход сотрудник: " + textBox1.Text + "";
                        s = "SELECT Nomer_S,Pass FROM Sotrudniki WHERE Nomer_S=" + textBox1.Text;
                        g = login.Server_Login_S(s, f + "  Дата: " + DateTime.Now.ToString());
                        if (g == textBox2.Text)
                        {
                            Form2 f2 = new Form2();
                            f2.n_s = this.n_s;
                            f2.Show();
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Вы не правильно ввели логин или пароль!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    if (radioButton2.Checked == true)
                    {
                        f += "\r\nЗапрос на вход руководитель: " + textBox1.Text + "";
                        s = "SELECT Ruk,Pass FROM Rukovoditel WHERE Ruk=" + textBox1.Text;
                        g = login.Server_Login_A(s,f +"  Дата: " + DateTime.Now.ToString());
 
                        if (g == textBox2.Text)
                        {
                            Form3 f3 = new Form3();
                            f3.Show();
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Вы не правильно ввели логин или пароль!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
            catch 
            {
                MessageBox.Show("Вы не правильно ввели логин или пароль!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            f = "IP: " + addr.ToString();
        }

вопрос у меня сервер это виндовс форма как передать (или обрабатывать функции на сервере) то есть я включаю сервер и указываю путь до базы потом с клиента вызвать какую то функцию сервера (например выборка) и чтоб на сервере отобразилось вызов функции

если я делаю через консоль и указываю програмно путь до бд то все нормально но как это осществить через форму?


То есть при запуске сервера указать путь до базы, подключиться к ней
Клиент вызвать (передать строку запроса) в функцию на сервер и отобразить вызов функции на сервере (ну и получить ответ с него таблица или еще что)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2012, 01:48
Ответы с готовыми решениями:

Клиент-сервер по интернету. Какой IP указать для сервера, если ПК - в общежитии с 1 роутером
Здравствуйте не знаю тут ли задавать этот вопрос. У меня в общежитии на всех компах один IP и в комнате стоит маршрутизатор. Я...

При запуске указать имя сервера
База написана на sql servere клиент на delphi, хочу чтобы при запуске клиента выводилось окошко с вводом имени сервера, на тот случай если...

Как указать путь к папке, чтобы программа в дальнейшем работала с ней?
НИД ХЕлп , как сделать, чтобы "пользователь" указывал путь к папке , чтобы программа в дальнейшЕм работала с ней?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2012, 01:48
Помогаю со студенческими работами здесь

Как правильно указать путь к файлу базы данных
Создаю соединение: Dim Connect As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\путь\файл.mdb") ...

Запускается сервер, при запуске трехзвенной базы
Надо делать трехзвенку, решил потренироваться на кошках) Сделал одну табличку, сделал серверное приложение, и клиентское подключил через...

Как правильно указать путь к папке на телефоне, куда нужно сохранить файл с FTP-сервера?
Скачиваю файл с FTP по нажатию кнопки в папку на телефоне. Как правильно указать эту папку? button.Click += delegate { ...

Boost::Asio клиент - сервер: При вводе с телнета на стороне сервера появляется куча крякозябр
Раньше использовал Code::Blocks и winsock. Сейчас решил попробовать VS2013 и библиотеку boost::asio Проблема в передачи данных. Проверял...

Клиент-сервер: Если запустить первый поток то он работает, при запуске второго потока выходит ошибка
Здравствуйте, пытаюсь разбить код на два потока. 1) Поток прием клиентов. void login_server() { struct sockaddr_in saddr; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru