我编写了一个代码来执行上述任务。没有错误,但访问数据库没有得到更新。
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection mycon = new OleDbConnection();
mycon.ConnectionString =@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Dinesh\C#\GIS_Power\WindowsFormsApplication1\bin\Power_DB1";
OleDbCommand command = new OleDbCommand();
command.CommandText = "INSERT INTO Table1 (Emp_ID,Asset_ID)VALUES('" + textBox1.Text + "','" + textBox2.Text + "')";
}
答案 0 :(得分:2)
问题1:您需要使用ExecuteNonQuery()
方法执行命令。
问题2:您没有通过从Connection对象调用Open()
方法来打开与数据库的连接。
问题3:您没有将Connection
对象分配给Command
对象。
建议:您的INERT INTO
声明对SQL Injection Attacks
开放,因此我建议您使用Parameterised queries
来避免这些声明。
完整代码:
OleDbConnection mycon = new OleDbConnection();
mycon.ConnectionString =@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Dinesh\C#\GIS_Power\WindowsFormsApplication1\bin\Power_DB1";
OleDbCommand command = new OleDbCommand();
command.CommandText = "INSERT INTO Table1 (Emp_ID,Asset_ID) VALUES(@empID,@assetID)";
command.Parameters.AddWithValue("@empID",textBox1.Text);
command.Parameters.AddWithValue("@assetID",textBox2.Text);
mycon.Open();
command.Connection=mycon;
command.ExecuteNonQuery();
答案 1 :(得分:0)
您没有执行该命令。请执行insert语句,然后只将数据插入数据库
这将解决您的问题。
OleDbCommand command = new OleDbCommand("//Isert statment here", mycon);
command.ExecuteNonQuery();
答案 2 :(得分:0)
您创建了连接字符串但未打开连接。
您创建了查询但未执行该查询。
<强>解决方案:强>
您还需要open
connection
和execute
查询。
<强>代码:强>
OleDbConnection mycon = new OleDbConnection();
mycon.ConnectionString =@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Dinesh\C#\GIS_Power\WindowsFormsApplication1\bin\Power_DB1";
mycon.Open(); //opening connection
OleDbCommand command = new OleDbCommand();
command.CommandText = "INSERT INTO Table1 (Emp_ID,Asset_ID)VALUES('" + textBox1.Text + "','" + textBox2.Text + "')";
command.ExecuteNonQuery(); //executing query
mycon.Close(); //close the connection after executing the query
答案 3 :(得分:0)
使用
mycon.open()
command.CommandText = "INSERT INTO Table1 (Emp_ID,Asset_ID)VALUES('" + textBox1.Text + "','" + textBox2.Text + "')";
command.ExecuteNonQuery();