Не вносятся данные в БД. C#, WinForm
Делаю windows form связанную с БД xampp my sql, чтобы в форме можно было заполнять базу данных Выдает ошибку в строе if (command.ExecuteNonQuery() == 1)
Исключение не обработано System.InvalidOperationException: "Connection must be valid and open."
Помогите пожалуйста
internal class DB
{
MySqlConnection connection = new MySqlConnection("datasource=127.0.0.1;port=3306;username=root;database=shop1;");
public void openConnection()
{
if (connection.State == System.Data.ConnectionState.Closed)
connection.Open();
}
public void closeConnection()
{
if (connection.State == System.Data.ConnectionState.Open)
connection.Close();
}
public MySqlConnection getConnection()
{
return connection;
}
}
private void button1_Click(object sender, EventArgs e)
{
DB db = new DB();
MySqlCommand command = new MySqlCommand("INSERT INTO products (name, price) VALUES('@name', '@price')");
command.Parameters.Add("@name", MySqlDbType.VarChar).Value = textBox1.Text;
command.Parameters.Add("@price", MySqlDbType.VarChar).Value = textBox2.Text;
db.openConnection();
if (command.ExecuteNonQuery() == 1)
MessageBox.Show("Товар добавлен");
else
MessageBox.Show("Товар не добавлен");
db.closeConnection();
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Вот вы создаете
MySqlCommand command = new MySqlCommand("текст запроса");
А как команда поймет, какое подключение к базе надо использовать, чтобы принести вам данные? Телепатически? :)
То есть ей надо назначить подключение. У вас даже метод есть getConnection(), вы не находите странным, что ни разу его не использовали?
MySqlCommand command = new MySqlCommand("текст запроса", db.getConnection());