1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

c# connect MySQL форма входа

Тема в разделе '.NET', создана пользователем Fituchini, 17 июл 2014.

  1. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Добрый день обитатели форума.
    Вновь мне нужна ваша помощь
    написал форму регистрации.
    Но вот как правильно поставить Валидность проверки данных не врублюсь.

    То есть , я вписываю данные, и если логин пароль и база Валидные, то открывает новую форму, если нет то выдаст MessageBox
    так не катит
    Код:
    
    using System.Net;
    using System.IO;
    using System.Data;
    using MySql.Data.MySqlClient;
    
    
    
    namespace connector
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void textBox1_MouseDown(object sender, MouseEventArgs e)
            {
                textBox1.Text = "";
                textBox1.ForeColor = Color.Black;          
            }
    
          
            private void button1_Click(object sender, EventArgs e)
            {
    
                MySqlConnectionStringBuilder d = new MySqlConnectionStringBuilder();
              
                d.Server = textBox1.Text;
                d.UserID = textBox2.Text;
                d.Password = textBox3.Text;
                d.Database = textBox4.Text;
                MySqlConnection MyConnection = new MySqlConnection(d.Server + d.UserID + d.Password + d.Database); 
              try
              {
                  MyConnection.Open();
              }
              catch (Exception ee)
              {
                  MessageBox.Show("Неверный пароль!", "Ошибка подключения к БД",MessageBoxButtons.OK);
                  return;
              }
                Form2 gform = new Form2();
                this.Visible = false;
                gform.Visible = true;
            }
    
            }
        }
    
    
    форму так не открывает
  2. Joslian AngeliCore Программист Пользователи Open Source Contributor

    Сообщения:
    1.051
    Лайки:
    537
    Пол:
    Мужской
    Репутация:
    2
    gform.Show();
  3. CoolMan Old school Пользователи

    Сообщения:
    436
    Лайки:
    88
    Пол:
    Мужской
    Репутация:
    0
  4. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    не открывает
  5. Joslian AngeliCore Программист Пользователи Open Source Contributor

    Сообщения:
    1.051
    Лайки:
    537
    Пол:
    Мужской
    Репутация:
    2
    Код:
    using System.Net;
    using System.IO;
    using System.Data;
    using MySql.Data.MySqlClient;
    
    
    
    namespace connector
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void textBox1_MouseDown(object sender, MouseEventArgs e)
            {
                textBox1.Text = "";
                textBox1.ForeColor = Color.Black;         
            }
    
         
            private void button1_Click(object sender, EventArgs e)
            {
    
                MySqlConnectionStringBuilder d = new MySqlConnectionStringBuilder();
             
                d.Server = textBox1.Text;
                d.UserID = textBox2.Text;
                d.Password = textBox3.Text;
                d.Database = textBox4.Text;
                MySqlConnection MyConnection = new MySqlConnection(d.Server + d.UserID + d.Password + d.Database);
              try
              {
                  MyConnection.Open();
              }
              catch (Exception ee)
              {
                  MessageBox.Show("Неверный пароль!", "Ошибка подключения к БД",MessageBoxButtons.OK);
                  return;
              }
                Form2 gform = new Form2();
                gform.Show();
                this.Visible = false;
                gform.Visible = true;
            }
    
            }
        }
  6. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    так и поставил, не открывает
    [​IMG]


    не могу понять, почему не соответствует? причём начиная с индекса
    --- добавлено: 17 июл 2014 в 13:14 ---
    какую ссылку подключить надо?
    Последнее редактирование модератором: 25 июл 2014
  7. Napalm Rain Программист Пользователи

    Сообщения:
    195
    Лайки:
    245
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    rstudio
    Страна:
    Russian Federation Russian Federation
    Мне кажется у вас малость символов в строке с параметрами подключения не хватает...
    Код:
     public static string Connect = "Database=test;Data Source=localhost;User Id=root;Password=";
            MySqlConnection myConnection = new MySqlConnection(Connect);
    как пример...
    Fituchini нравится это.
  8. pilad Команда форума Модератор Пользователи

    Сообщения:
    1.740
    Лайки:
    480
    Пол:
    Мужской
    Репутация:
    1
    Команда:
    Freeman
    Проще помоему брать данные с конфига .Каждый раз вводить их для подключения, это бредово.
    Для безопасности можно пароль в конфиге шифровать.
    P.S.
    Если Mysql слушает не локалхост, то это вообще дырка в безопасности.
    Fituchini нравится это.
  9. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Порт прописать?

    Да и нужно не только локально.
    Но и настраиваемо. для 2 сервера 2 прогу писать?
    --- добавлено: 17 июл 2014 в 13:47 ---
    Тооочно же Pilad ты гений
    Последнее редактирование модератором: 25 июл 2014
  10. pilad Команда форума Модератор Пользователи

    Сообщения:
    1.740
    Лайки:
    480
    Пол:
    Мужской
    Репутация:
    1
    Команда:
    Freeman
    Зачем.. Сделать по типу того же Навиката. Ввёл сервер, в дереве слева появилось подключение. И так N раз
    Потом только кликать слева на нужном подключении и всё. Ничего вводить не нужно.
    --- добавлено: 17 июл 2014 в 13:49 ---
    Это сарказм был? :D
    Последнее редактирование модератором: 25 июл 2014
  11. Napalm Rain Программист Пользователи

    Сообщения:
    195
    Лайки:
    245
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    rstudio
    Страна:
    Russian Federation Russian Federation
    Вы видимо меня не поняли... это пример того, как должна выглядеть конечная строка, то есть в вашем случае примерно так:
    Код:
    public static string Connect = "Database="+textBox4.Text+";Data Source="+textBox1.Text+";User Id="+textBox2.Text+";Password="+textBox3.Text;
    MySqlConnection myConnection = new MySqlConnection(Connect);
    //если нужно указать не дефолтный порт Data Source="+textBox1.Text+":"+port.Text+
    Я стрингбилдером не пользовался, не буду врать. Но в таком варианте точно работает. Ещё нужно помнить, что при подключении к удалённой базе, на ней, собственно, нужно разрешить это...
    Fituchini нравится это.
  12. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Я до этого ещё не дошёл

    нет, я на самом деле, просто как то не додумался
  13. Napalm Rain Программист Пользователи

    Сообщения:
    195
    Лайки:
    245
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    rstudio
    Страна:
    Russian Federation Russian Federation
    ну, может поможет... : https://mmorpg-devs.ru/threads/microadmin.15243/page-2#post-126694
    Как-то с этим разбирался. На локалхосте, в принципе, это не нужно. Сейчас пишу серверную часть для своего проекта, работает без дополнительный манипуляций. Но если база на удалёнке, тот тут либо договариваться с хостингом, если в панели управления это не настроено, либо, если это выделенка, то самому немного подшаманить
    Fituchini нравится это.
  14. SkyDev Программист Old school Пользователи Open Source Contributor

    Сообщения:
    197
    Лайки:
    234
    Пол:
    Мужской
    Репутация:
    -1
    Страна:
    Ukraine Ukraine
    Видимо ты не правильно формируешь строку для подключения. Попробуй использовать MySqlConnectionStringBuilder.
    Код:
    MySqlConnectionStringBuilder mysql_conf = new MySqlConnectionStringBuilder();
    conn_string.Server = "localhost";
    conn_string.UserID = "root";
    conn_string.Password = "pass";
    conn_string.Database = "db";
    
    А в своем коде потом исправь
    Код:
    MySqlConnection MyConnection = new MySqlConnection(mysql_conf.ToString());
    Fituchini нравится это.
  15. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Уже разобрался, спасибо, я оператор дважды использовал, и сам того не заметил
  16. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Код:
    private void Form2_Load(object sender, EventArgs e)
            {
           // Это строка как пример   string connectionString = "Database=test;Data Source=localhost;User Id=test_user;Password=test_password";
                 string connectionString = ?????? как задать считывание которые я только что ввёл?
                MySqlConnection connection = new MySqlConnection(connectionString);
    
                MySqlCommand command = new MySqlCommand();
                string commandString = "SELECT * FROM users;";
                command.CommandText = commandString;
                command.Connection = connection;
                MySqlDataReader reader;
                try
                {
                    command.Connection.Open();
                    reader = command.ExecuteReader();
                    this.dataGridView1.Columns.Add("user_id", "User ID");
                    this.dataGridView1.Columns["user_id"].Width = 20;
                    this.dataGridView1.Columns.Add("username", "Username");
                    this.dataGridView1.Columns["user_id"].Width = 50;
                    while (reader.Read())
                    {
                        dataGridView1.Rows.Add(reader["user_id"].ToString(), reader["username"].ToString());
                    }
                    reader.Close();
                }
                catch (MySqlException ex)
                {
                    Console.WriteLine("Error: \r\n{0}", ex.ToString());
                }
                finally
                {
                    command.Connection.Close();
                }
            }
    
    
  17. SkyDev Программист Old school Пользователи Open Source Contributor

    Сообщения:
    197
    Лайки:
    234
    Пол:
    Мужской
    Репутация:
    -1
    Страна:
    Ukraine Ukraine
    string connectionString = string.Format("Database={0};Data Source={1};User Id={2};Password={3}",textbox1.Text,textbox2.Text,...);
  18. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Нее ты меня не много не понял
    Это новая Форма. А значения я ввожу в другой
    т.е. Ввёл данные и открылась форма с БД
  19. SkyDev Программист Old school Пользователи Open Source Contributor

    Сообщения:
    197
    Лайки:
    234
    Пол:
    Мужской
    Репутация:
    -1
    Страна:
    Ukraine Ukraine
    Если правильно понял, сделай connectionString публичным. Если все таки хочешь получить доступ конкретно к элементам формы1, сделай их также публичными,а Program.cs измени примерно так.
    Код:
        static class Program
        {
            public static Form1 ConfigForm =new Form1();
            /// <summary>
            /// Главная точка входа для приложения.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.Run(ConfigForm);
            }
        }
    И потом получай доступ к элементам Program.ConfigForm...
  20. TopicStarter Overlay

    Fituchini Пользователи

    Сообщения:
    339
    Лайки:
    71
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Bind adress сменил на bind-address = 0.0.0.0
    перезапустил Mysql но коннектится по прежжнему не хочет.
    Хотя к локальному Mysql (Патчер для CPW база) к базе pwu он подключился без проблем
Черновик сохранён Черновик удалён
Similar Threads
  1. Neron
    Ответов:
    5
    Просмотров:
    1.210
  2. Стас Назаренко
    Ответов:
    6
    Просмотров:
    1.348
  3. galivasya
    Ответов:
    4
    Просмотров:
    1.545
  4. VetalGold
    Ответов:
    10
    Просмотров:
    2.322
  5. Vooody
    Ответов:
    3
    Просмотров:
    3.034
Загрузка...

Поделиться этой страницей