搜索大约一个小时后,看来这是使用OLEDB libary插入一条记录到Access数据库的正确方法但它不工作对我来说,帮助...添加到数据库OLEDB C#
InitializeComponent();
System.Data.OleDb.OleDbConnection conn = new
System.Data.OleDb.OleDbConnection();
// TODO: Modify the connection string and include any
// additional required properties for your database.
conn.ConnectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = \\crd-a555-015.occ.local\c$\Users\james.piper\Documents\Visual Studio 2015\Projects\Project V1\Project Database.accdb";
try
{
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Work_Done (employee,client,project,task,hours)" + " VALUES (@employee,@client,@project,@task,@hours)";
cmd.Parameters.AddWithValue("@employee", user.employee);
cmd.Parameters.AddWithValue("@client", listBox1.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@project", listBox2.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@task", listBox3.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@hours", listBox4.SelectedItem.ToString());
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show("sql insert fail");
}
您将需要定义“无效”。你得到一个错误?意外的行为?有些事情没有按照你的想法执行?我们需要一些更详细的信息。 – ADyson
你收到了什么错误信息? – craigster
据我记得,OleDb不支持命名参数,只有序号参数。因此,您应该更改查询以使用问号('?')而不是参数名称。另外,你应该习惯在'using'语句中使用所有的IDisposables - OleDbConnection和OleDbCommand是IDisposable。 –