通用方法:
private void AccEss数据库增删改(List<string> 表达式, bool 控制 = false)
{
int 影响数 = 0;
Thread 执行操作 = new Thread(delegate()
{
OleDbConnection 连接 = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = 数据库名.mdb");
连接.Open();
foreach (string 元素 in 表达式)
{
OleDbCommand 执行 = new OleDbCommand(元素, 连接);
影响数 += 执行.ExecuteNonQuery();
}
连接.Close();
});
执行操作.Start();
执行操作.Join();/*有些执行过程不需提示控制*/
if (影响数 > 0 && 控制) MessageBox.Show("数据保存成功!受影响数" + 影响数.ToString("〖00000〗"), "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
执行示例[增-数据插入]:
List<string> 数据库执行语句 = new List<string>();
数据库执行语句.Add("INSERT INTO 数据表名 (字段名1,字段名2) VALUES ('" + 数据1 + "', '" + 数据2 + "')");
AccEss数据库增删改(数据库执行语句, false);
执行示例[改-数据更新]:
数据库执行语句.Add("UPDATE 数据表名 SET 字段名1 = '" + 数据1 + "' , 字段名2 = '"
+ 数据2 + "' WHERE _ID = " + int.Parse(数据ID));
AccEss数据库增删改(数据库执行语句, false);
执行示例[删-数据删除]:
数据库执行语句.Add("DELETE FROM 数据表名 WHERE 字段名 = '" + 删除.Text + "' and _ID = " + int.Parse(数据ID));
AccEss数据库增删改(数据库执行语句, true);
执行示例[综合-多表-批量]:
数据库执行语句.Add("INSERT INTO 数据表名1 (字段名1,字段名2) VALUES ('" + 数据1 + "', '" + 数据2 + "')");
数据库执行语句.Add("UPDATE 数据表名2 SET 字段名1 = '" + 数据1 + "' , 字段名2 = '" + 数据2 + "' WHERE _ID = " + int.Parse(数据ID));
数据库执行语句.Add("DELETE FROM 数据表名3 WHERE 字段名 = '" + 删除.Text + "' and _ID = " + int.Parse(数据ID));
AccEss数据库增删改(数据库执行语句, true);
AccEss数据库增删改(表达式:数据库执行语句);
之所以写成这样形式,理由1:如果某语句在多处被用到则归纳;理由2:便于代码维护;理由3:可以很方便写到类文件中编译为DLL文件.
无论是AccEss数据库还是Sql数据库或.NET支持的数据提供者,只要改变对应的语句即可通用.如:AccEss数据库则使用OleDbConnection和OleDbCommand,Sql数据库则使用SqlConnection和SqlCommand,语法是一样的,修改即可.
看论坛提问不少,发布提供参考.