C# – ExecuteNonQuery需要一个开放且可用的连接.连接的当前状态
发布时间:2020-12-15 04:35:03 所属栏目:百科 来源:网络整理
导读:我是C#的新手. 请协助! 我一直有以下错误:“ExecuteNonQuery需要一个开放且可用的连接.连接的当前状态已关闭.” 我也无法插入我的数据库. 以下是我的代码: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data
我是C#的新手.
请协助! 我一直有以下错误:“ExecuteNonQuery需要一个开放且可用的连接.连接的当前状态已关闭.” 以下是我的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.OleDb; namespace AzureSecureStore { public partial class Client : Form { OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersSB18DocumentsVisual Studio 2010ProjectsAzureSecureStoreAzureSecureStoreAzcureSecureStore Database.accdb; Persist Security Info=False;"); //OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersSB18DocumentsVisual Studio 2010ProjectsAzureSecureStoreAzureSecureStoreAzcureSecureStore Database.accdb"); public Client() { InitializeComponent(); } private void button1_Click(object sender,EventArgs e) { } private void dataGridView1_CellContentClick(object sender,DataGridViewCellEventArgs e) { } private void button5_Click(object sender,EventArgs e) { } private void button4_Click(object sender,EventArgs e) { } private void Client_Load(object sender,EventArgs e) { // TODO: This line of code loads data into the 'azcureSecureStore_DatabaseDataSet5.Client' table. You can move,or remove it,as needed. this.clientTableAdapter.Fill(this.azcureSecureStore_DatabaseDataSet5.Client); // TODO: This line of code loads data into the 'azcureSecureStore_DatabaseDataSet2.Client' table. You can move,as needed. //this.clientTableAdapter.Fill(this.azcureSecureStore_DatabaseDataSet2.Client); } private void button2_Click(object sender,EventArgs e) { string ab = string.Format("insert into Client values({0},'{1}','{2}',{3},{4},'{5}')",textBox1.Text,textBox2.Text,int.Parse(textBox3.Text),int.Parse(textBox4.Text),textBox9.Text,int.Parse(textBox10.Text)); OleDbCommand vcom = new OleDbCommand(ab,vcon); vcom.ExecuteNonQuery(); MessageBox.Show("Data stored successfully"); vcom.Dispose(); } private void textBox1_TextChanged(object sender,EventArgs e) { } } } 解决方法
你忘了打开连接,
vcon.Open(); vcom.ExecuteNonQuery(); 但记得要用 > using statement – 正确处理对象 更新1 string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersSB18DocumentsVisual Studio 2010ProjectsAzureSecureStoreAzureSecureStoreAzcureSecureStore Database.accdb; Persist Security Info=False;"; string query = "INSERT INTO Client VALUES(@col1,@col2,@col3,@col4,@col5,@col6)"; using (OleDbConnection conn = new OleDbConnection(connStr)) { using (OleDbCommand comm = new OleDbCommand()) { comm.Connection = conn; comm.CommandText = query; comm.CommandType = CommandType.Text; comm.Parameters.AddWithValue("@col1",textBox1.Text); comm.Parameters.AddWithValue("@col2",textBox2.Text); comm.Parameters.AddWithValue("@col3",int.Parse(textBox3.Text)); comm.Parameters.AddWithValue("@col4",int.Parse(textBox4.Text)); comm.Parameters.AddWithValue("@col5",textBox9.Text); comm.Parameters.AddWithValue("@col6",int.Parse(textBox10.Text)); try { conn.Open(); comm.ExecuteNonQuery(); MessageBox.Show("Data stored successfully"); } catch(OleDbException e) { MessageBox.Show(e.ToString()); } } } > AddWithValue (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读