我插入從Windows Forms表單數據到下面的SQL數據庫:插入數據多次到SQL表,從Windows上的一個按鈕窗體
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,它必須先關閉」。
我該如何處理?
* UPDATE:*我已經改變,因爲下面的按鈕,點擊事件代碼:
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();**
}
它有哪些缺點?一個會是一次又一次的連接打開和關閉時點擊按鈕。
您的連接在更新後的代碼,請完全刪除該cmd.ExecuteReader()行,並取消對cmd.ExecuteNonQuery()線。 – 2011-03-31 14:22:29