когда я тестирую свою программу и выбираю один из первых трех разделов (я выбрал вариант еды и питья), программа не будет показывать таблицу (она должна отображать таблицу food_and_drink) вместо этого отображает сообщение об ошибке «Ошибка: аутентификация на хосте 'localhost' для пользователя 'root' с использованием метода «caching_sha2_password» не удалось выполнить сообщение: Доступ запрещен для пользователя 'root'@'localhost' (с использованием пароля: НЕТ)". и после сообщения об ошибке программа снова возвращается в главное меню. и эта ошибка касается всех первых трех вариантов.
примечание: 1. для базы данных я использую myphpadmin (через xampp) для управления и хранения базы данных.
- В базе данных 6 таблиц:
- Таблица Tenant_list (содержащая информацию о личных данных поставщика)
- Таблица Dormitory_building (хранит информацию о здании, в котором живет продавец)
- Таблица Product_junction (соединительная таблица) для связи таблицы между продавцом и продуктом, который он продает)
- таблица food_and_drink (содержит информацию о деталях продукта, которая связанные с едой и напитками)
- clothing_table (содержит информацию о деталях продукта, связанного с одеждой)
- расширение (в коде Visual Studio), которое я использовал для подключения базы данных к коду Visual Studio, называется «MySQL», созданное Вейжан Чен
- Я уже изменил привилегии пользователя root (поскольку я использовал пользователя root для управления базой данных в myphpadmin), а также изменил свой плагин аутентификации для mysql_native_password (на самом деле я не менял, плагин уже настроен таким образом)
`с использованием Система;
с использованием System.Threading;
с использованием MySql.Data.MySqlClient;
пространства имен MyApplication
{
класса Program
{
static void DisplayTableData(string tableName)
{
string ConnectionString = "Server=localhost;Database=telyu_vendor_dorm;User ID=root;";
строковый запрос = $"SELECT * FROM {tableName}";
Код: Выделить всё
try
{
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand(query, connection))
{
using (MySqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
Console.WriteLine($"Data from table '{tableName}':");
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Console.Write($"{reader.GetName(i)}: {reader[i]} ");
}
Console.WriteLine();
}
}
else
{
Console.WriteLine($"No data found in table '{tableName}'.");
}
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
static void Foodie()
{
Console.WriteLine("You have chosen the Food and Drink category!");
Thread.Sleep(1000);
DisplayTableData("Food_and_Drink");
}
static void Clothes()
{
Console.WriteLine("You have chosen the Clothing category!");
Thread.Sleep(1000);
DisplayTableData("Clothes");
}
static void TheOtherStuff()
{
Console.WriteLine("You have chosen the Miscellaneous category!");
Thread.Sleep(1000);
DisplayTableData("Miscellaneous");
}
static void Main(string[] args)
{
int itsTimeToStop = 0;
Console.WriteLine("Telkom University Dormitory Market (test version)");
Thread.Sleep(1000);
Console.WriteLine("What do you want to do today?");
Console.WriteLine("");
while (itsTimeToStop < 1)
{
Console.WriteLine(" | [1] Food and Drinks | [2] Clothing | [3] Miscellaneous | [4] Exit");
Console.WriteLine("");
Console.Write("Your chosen category: ");
int choice = Convert.ToInt32(Console.ReadLine());
switch (choice)
{
case 1:
Foodie();
break;
case 2:
Clothes();
break;
case 3:
TheOtherStuff();
break;
case 4:
Console.WriteLine("You have exited the website!");
itsTimeToStop++;
break;
default:
Console.WriteLine("Please choose a valid option.");
break;
}
}
}
}
`
Подробнее здесь: https://stackoverflow.com/questions/793 ... on-issuess
Мобильная версия