2014-01-22 62 views
-3

我已经编写了一个代码来完成上述任务。没有错误,但访问数据库没有得到更新。使用c#表单应用程序更新Access数据库

private void button1_Click(object sender, EventArgs e) 
    { 
     OleDbConnection mycon = new OleDbConnection(); 
     mycon.ConnectionString [email protected]"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

你没有执行命令。请执行插入语句,然后仅插入数据到数据库中

这将解决您的问题。

OleDbCommand command = new OleDbCommand("//Isert statment here", mycon); 
command.ExecuteNonQuery(); 
+0

谢谢。问题解决了。感谢所有.. – user3219362

+0

在这种情况下,率将非常感激:) – Nil23

2

问题1:需要使用ExecuteNonQuery()方法来执行命令。

问题2:您没有通过Connection对象调用Open()方法打开与数据库的连接。

问题3:您没有将Connection对象指定给Command对象。

建议:INERT INTO声明是开放的SQL Injection Attacks,所以我建议你使用Parameterised queries避免。

完整代码:

OleDbConnection mycon = new OleDbConnection(); 
mycon.ConnectionString [email protected]"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(); 
+0

建议:使用'using'连接和(可能?)命令。 – Sinatr

0

您创建了连接字符串但未打开连接。

您创建了查询但未执行该查询。

解决方案:

您需要openconnectionexecute查询也是如此。

代码:

OleDbConnection mycon = new OleDbConnection(); 
mycon.ConnectionString [email protected]"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 
0

使用

mycon.open() 
command.CommandText = "INSERT INTO Table1 (Emp_ID,Asset_ID)VALUES('" + textBox1.Text + "','" + textBox2.Text + "')"; 
command.ExecuteNonQuery(); 
相关问题