У меня есть база данных MySQL на веб-сервере, которая содержит столбцы idPlayers, имя, фамилия, возраст и высота. Пользователь вводит данные в текстовые поля формы и нажимает кнопку, чтобы вставить данные в базу данных, у которой уже есть несколько строк данных. Ниже мой код:Вставка данных в базу данных MySQL C#
Метод в Connection.cs Класс:
public string AddPlayer(int idPlayers, string FirstName, string Surname, int Age, int Height)
{
string result;
using (var Connection = new MySqlConnection(ConnectionString))
{
Connection.Open();
using (var command = new MySqlCommand(
"INSERT INTO Players(idPlayers, First Name, Surname, Age, Height) VALUES(@idPlayers, @First Name, @Surname, @Age, @Height)", Connection))
try
{
command.Parameters.AddWithValue("idPlayers", idPlayers);
command.Parameters.AddWithValue("First Name", FirstName);
command.Parameters.AddWithValue("Surname", Surname);
command.Parameters.AddWithValue("Age", Age);
command.Parameters.AddWithValue("Height", Height);
command.ExecuteNonQuery();
Connection.Close();
}
catch
{
result = "Failure";
return result;
}
}
result = "Success";
return result;
}
}
Метод вызова в Form1.cs класса
public void button1_Click(object sender, EventArgs e)
{
string result1;
int idPlayers = 3;
String FirstName = FirstNameBox.Text;
String Surname = SurnameBox.Text;
int Age = Convert.ToInt32(AgeBox.Text);
int Height = Convert.ToInt32(HeightBox.Text);
Connection NewCon = new Connection();
result1 = NewCon.AddPlayer(idPlayers, FirstName, Surname, Age, Height);
MessageBox.Show(result1);
}
При нажатии на кнопку, чтобы вставить данные в окне сообщения отображается Провал. У вас есть идеи, почему данные не будут вставляться? ConnectionString определенно корректен, поскольку я могу читать из базы данных в другом месте моей программы.
Спасибо за вашу помощь, Джордж
Измененный класс Connection.cs:
public string AddPlayer(int idPlayers, string FirstName, string Surname, int Age, int Height)
{
string result;
using (var Connection = new MySqlConnection(ConnectionString))
{
Connection.Open();
using (var command = new MySqlCommand(
"INSERT INTO Players(idPlayers, First Name, Surname, Age, Height) VALUES(@idPlayers, @FirstName, @Surname, @Age, @Height)", Connection))
try
{
command.Parameters.AddWithValue("@idPlayers", idPlayers);
command.Parameters.AddWithValue("@FirstName", FirstName);
command.Parameters.AddWithValue("@Surname", Surname);
command.Parameters.AddWithValue("@Age", Age);
command.Parameters.AddWithValue("@Height", Height);
command.ExecuteNonQuery();
Connection.Close();
}
catch(Exception ex)
{
result = ex.Message;
return result;
}
}
result = "Success";
return result;
}
}
Почему вы игнорируете исключение в своем блоке 'catch'? Я гарантирую, что исключение говорит вам точно, что случилось. Игнорирование ошибок не поможет вам исправить ситуацию. – David
@David верен, вместо отказа, отслеживает сообщение об ошибке и публикует это здесь. Это будет намного более полезно. –