使用c#表单应用程序更新Access数据库

时间:2014-01-22 10:34:34

标签: c#

我编写了一个代码来执行上述任务。没有错误,但访问数据库没有得到更新。

 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 + "')";
    }

4 个答案:

答案 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 connectionexecute查询。

<强>代码:

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();