#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