Я вставляю данные из формы Windows Forms в базу данных SQL, как показано ниже:
public partial class Form1 : Form
{
SqlConnection c = new SqlConnection();
string q = "Trusted_Connection = true; ";
public Form1()
{
InitializeComponent(); c.ConnectionString = q;
MessageBox.Show("Connecting Database");
}
private void button1_Click(object sender, EventArgs e)
{
string w = "insert into checkmultiuser(username) values (@username)";
SqlCommand cmd = new SqlCommand(w, c);
cmd.Parameters.Add("@username", SqlDbType.VarChar);
cmd.Parameters["@username"].Value = textBox1.Text;
cmd.ExecuteReader();
}
Но когда я снова нажимаю кнопку, он говорит: «Уже существует открытый DataReader, связанный с этой Командой, который должен быть сначала закрыт».
Как мне с этим бороться?
* ОБНОВЛЕНИЕ: * Я изменил нажатие кнопки код события, как показано ниже:
private void button1_Click(object sender, EventArgs e)
{
**c.Open();**
string w = "insert into checkmultiuser(username) values (@username)";
SqlCommand cmd = new SqlCommand(w, c);
cmd.Parameters.Add("@username", SqlDbType.VarChar);
cmd.Parameters["@username"].Value = textBox1.Text;
//cmd.ExecuteNonQuery();
cmd.ExecuteReader();
**c.Close();**
}
Каковы его недостатки? Во-первых, соединение снова и снова открывается и закрывается при нажатии кнопки.