使用@Lee.J.Baxter 的方法(这很好,因为其他人不适合我!)我转义了扩展方法,只是将它内联添加到表单本身中:
OleDbConnection con = new OleDbConnection(string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}'", DBPath));
OleDbCommand cmd = con.CreateCommand();
con.Open();
cmd.CommandText = string.Format("INSERT INTO Tasks (TaskName, Task, CreatedBy, CreatedByEmail, CreatedDate, EmailTo, EmailCC) VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", subject, ConvertHtmlToRtf(htmlBody), fromName, fromEmail, sentOn, emailTo, emailCC);
cmd.Connection = con;
cmd.ExecuteScalar();
using (OleDbCommand command = new OleDbCommand("SELECT @@IDENTITY;", con))
{
ReturnIDCast =(int)command.ExecuteScalar();
}
注意:在大多数情况下,您应该使用参数而不是我在这里使用的 string.Format() 方法。这次我只是这样做,因为它更快,而且我的插入值不是来自用户的输入,所以它应该是安全的。