Многократная вставка данных в таблицу SQL с помощью одной кнопки в Windows Forms

Я вставляю данные из формы 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();**
}

Каковы его недостатки? Во-первых, соединение снова и снова открывается и закрывается при нажатии кнопки.

6
задан Peter Mortensen 10 November 2013 в 13:43
поделиться