Войдите в C #, используя хранимую процедуру из MySQL

#c# #mysql #wpf

#c# #mysql #wpf

Вопрос:

Я создаю пользовательскую форму, которая сначала будет входить на сервер базы данных, а затем проходить аутентификацию из одной из таблиц, в которой есть данные пользователя.

Я создал хранимую процедуру в MySQL, и я хочу войти в систему, используя эту хранимую процедуру из моей пользовательской формы.

Это мой код ниже, я не могу понять, чего мне не хватает.Пожалуйста, помогите. Ошибка: база данных не найдена

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using MySql.Data.MySqlClient;

namespace OmegaServe
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            try
            {
                string myconnection = "datasource="   Hostname.Text   ";port="   PortNumber.Text   ";username="   DBuname.Text   ";password="   DBupass.Password   "";
                MySqlConnection myConn = new MySqlConnection(myconnection);
                //MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
                //MySqlCommand SelectCommand = new MySqlCommand("select name from "   Database.Text   ".userdetails where emailID='"   LoginID.Text   "' and password='"   LoginPass.Password   "';", myConn);
                //MySqlCommandBuilder cd = new MySqlCommandBuilder(myDataAdapter);
                MySqlCommand SelectCommand = new MySqlCommand("authenticateUser", myConn);
                SelectCommand.CommandType = System.Data.CommandType.StoredProcedure;
                MySqlParameter email = new MySqlParameter("@iEmailID", LoginID.Text);
                MySqlParameter password = new MySqlParameter("@iPassword", LoginPass.Password);
                MySqlParameter ip = new MySqlParameter("@iIpAddr", "00:00:00:00");
                MySqlParameter role = new MySqlParameter("@iRoleId", 1);
                SelectCommand.Parameters.Add(email);
                SelectCommand.Parameters.Add(password);
                SelectCommand.Parameters.Add(ip);
                SelectCommand.Parameters.Add(role);
                myConn.Open();

                MySqlDataReader myreader;

                myreader = SelectCommand.ExecuteReader();
                int count = 0;
                while (myreader.Read())
                {
                    count = count   1;
                }
                if (count == 1)
                {
                    MessageBox.Show("Login Successful");

                }
                else if (count > 1)
                {
                    MessageBox.Show("Duplicate Users Available");

                }
                else
                {
                    MessageBox.Show("Login Failed");
                    myConn.Close();

                }





            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


        }
    }
}
  

Комментарии:

1. Похоже, вам не хватает объяснения, почему данный код не работает.

2. Добавлено сообщение об ошибке. Извините за промах.

Ответ №1:

Ваша строка подключения должна иметь формат:

 connectionString="server=myServerAddress;port=1234;username=myUsername;password=myPassword;database=myDataBase"
  

Я сомневаюсь, что вы фиксируете имя сервера и базы данных через datasource=" Hostname.Text