日期:2014-05-18  浏览次数:20395 次

☆★☆★☆★关于access同时增加一条记录到2个表的问题☆★☆★☆★
我的思路是这样的.   我的   页面   有中英文   两个   方面.就是用到   resourecs   文件.   相应   建立一个文章系统.数据库是access.  

我想每发布一条   中文   新闻.相应   一个   英文新闻就会   在另外   的表产生.

就是中文.英文2个表   分别存储新闻文章.

但是里面的   id是一一对应的

就是说.哪怕是空记录都好.我怎样插入一条记录到一个表.另外一个表都相应增加一个记录呢?

另外只能用Access.因为公司的网站空间是不支持SQLSERVER的.谢谢


------解决方案--------------------
两条insert不可以吗?
------解决方案--------------------
ACCESS不支持触发器,貌似没有好的做法,填加两次吧
------解决方案--------------------
原来Access不支持触发器啊。又学到了,谢谢
------解决方案--------------------
有人说事务可以做?
------解决方案--------------------

up
------解决方案--------------------
还有人知道吗???
------解决方案--------------------
事务只是为了保证一次操作流程的完整性,也就是说两次insert放在一个事务中处理,如果其中一次失败,就将事务回滚,这样中英文的数据就始终可以保持一一对应。
------解决方案--------------------
对对,就是这样.但是我不会 这个 事务..请问那里有这个例子呢?

c# 事务 Access

------解决方案--------------------
OleDbTransaction 是C#内置的,不需要数据库支持,LZ直接用吧。
-----------------
有点扯,数据库当然要支持,C#内置的,那我用VB。net 怎么办?
------------------------------------------

究竟怎样了...晕
------解决方案--------------------
// ....
using (OleDbConnection dbconn = new OleDbConnection(connStr))
{
dbconn.Open();
//创建事务
OleDbTransaction dbtran = dbconn.BeginTransaction();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = dbconn;
cmd.Transaction = dbtran;
cmd.CommandType = CommandType.Text;
try
{
cmd.CommandText = sql1;
cmd.ExecuteNonQuery();

cmd.CommandText = sql2;
cmd.ExecuteNonQuery();

//执行完成后提交事务
dbtran.Commit();
}
catch
{
//回滚事务
dbtran.Rollback();
throw;
}
}

------解决方案--------------------
// ....
using (OleDbConnection dbconn = new OleDbConnection(connStr))
{
dbconn.Open();
//创建事务
OleDbTransaction dbtran = dbconn.BeginTransaction();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = dbconn;
cmd.Transaction = dbtran;
cmd.CommandType = CommandType.Text;
try
{
cmd.CommandText = sql1;
cmd.ExecuteNonQuery();

cmd.CommandText = sql2;
cmd.ExecuteNonQuery();

//执行完成后提交事务
dbtran.Commit();
}
catch
{
//回滚事务
dbtran.Rollback();
throw;
}
}

完全赞成
------解决方案--------------------
最笨的办法 插两次 insert 呵