在做一个在线投票系统 一张是tbvote表 里面有 voteid 和votetitle 两个字段
另一个表是tbvoteitem 里面有voteitemid voteid votecontent votetotal四个字段
现在做一个 插入投票项 的页面     在表tbvote里插入 votetitle 的同时 在表tbvoteitem 插入 votecontent (votecontent 可一次插入多条)现在请教的是 怎样使两个表有同样的ID   就是 votetitle 对应的voteid 和votecontent 对应的voteid 相同 (因为votetitle对应votecontent)   求各位大侠帮忙 !! 在线等!! 

解决方案 »

  1.   

    tbvote       voteid  votetitle
    tbvoteitem   voteitemid voteid votecontent votetotalvoteid  确保唯一第一种办法 直接自己定义voteid  然后用事务 插入到2张表第二种办法 插入之后取 SELECT @@IDENTITY 取出来插入另一张表 事务//执行事务处理
    public void DoTran()
    {  //建立连接并打开
     SqlConnection myConn=GetConn();
     myConn.Open();
     SqlCommand myComm=new SqlCommand();
     //SqlTransaction myTran=new SqlTransaction();
     //注意,SqlTransaction类无公开的构造函数
     SqlTransaction myTran;
     //创建一个事务
     myTran=myConn.BeginTransaction();
     try
     {
      //从此开始,基于该连接的数据操作都被认为是事务的一部分
      //下面绑定连接和事务对象
      myComm.Connection=myConn;
      myComm.Transaction=myTran; //定位到pubs数据库
      myComm.CommandText="USE pubs";
      myComm.ExecuteNonQuery();//操作1
      myComm.CommandText=""; //操作2
      myComm.ExecuteNonQuery();
       //提交事务
      myTran.Commit();
     }
     catch(Exception err)
     {
      myTran.rollback();
      throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
      }
     finally
     {
      myConn.Close();
      }
    }
      

  2.   


    没别的方法了   不会用事务      可不可以自定义一个  自动生成ID 的方法两个表的voteid全用它
      

  3.   

    可以啊 你自己select max(ID)也要自增 不过这种也不是很好取出最大ID 做2表的ID不过也要用事务  毕竟多表操作 失败要回滚的。事务不难吧 就是执行2个操作而已啊。
      

  4.   

    本帖最后由 net_lover 于 2011-08-01 14:41:45 编辑