vs2008 sqlserver 2005
在asp端想编一个事务 往两个不同的表插入信息
如
表a插入用户 数据库自动给予一个id client表b插入这个用户购买的商品 并插入刚刚的id client最后在提交事务我的问题是:我不知道怎么在没有提交事务之前 获得这个id
下面是代码
string myConnectString = "xxxx";
SqlConnection myConnection = new SqlConnection(myConnectString);
myConnection.Open(); SqlTransaction trans = myConnection.BeginTransaction();
SqlCommand comm = new SqlCommand();
comm.Transaction = trans;
comm.Connection = myConnection; try
{
comm.CommandText = "insert into client (mingzi) values('mingzi')";
temps = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//Response.Write(temps);
comm.CommandText = "insert into commande (shangpin,id_client) values ('baicai',???)";
trans.Commit();
//Response.Write("<br>etat" + trans.ToString());
}
catch (SqlException ex)
{
trans.Rollback();
}
finally
{
myConnection.Close();
}
在asp端想编一个事务 往两个不同的表插入信息
如
表a插入用户 数据库自动给予一个id client表b插入这个用户购买的商品 并插入刚刚的id client最后在提交事务我的问题是:我不知道怎么在没有提交事务之前 获得这个id
下面是代码
string myConnectString = "xxxx";
SqlConnection myConnection = new SqlConnection(myConnectString);
myConnection.Open(); SqlTransaction trans = myConnection.BeginTransaction();
SqlCommand comm = new SqlCommand();
comm.Transaction = trans;
comm.Connection = myConnection; try
{
comm.CommandText = "insert into client (mingzi) values('mingzi')";
temps = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//Response.Write(temps);
comm.CommandText = "insert into commande (shangpin,id_client) values ('baicai',???)";
trans.Commit();
//Response.Write("<br>etat" + trans.ToString());
}
catch (SqlException ex)
{
trans.Rollback();
}
finally
{
myConnection.Close();
}
中间可增加一个SQL查询来获得该值=>对了,这个事物关系到两个插入,在第二个插入验证以前都不会有插入结果啊。
你试试看就知道能否获得你要的值了