1、建立约束,用一个事务控制整个整个数据新增的过程:即把主从表新增数据的代码放在一个事务中。2、看了你A表,如果ID是用的自动编号,可以通过@@identity得到当前自动编号的值。
解决方案 »
- c# winform 怎么能在Form1的界面中用控件绑定显示如下效果
- 自动填写网页表单的问题
- C#datagridview控件上的数据引到excel...请高手指点一下.``
- 求一个简单的C#程序代码
- 遇到一个奇怪问题调制解调器拨号上网PHostEntry tst_host = Dns.GetHostEntry(_serverName)执行出错宽带上网执行又没有错误
- 在线等,outlook expree存放电子邮件的默认目录是啥?你可以在“工具-》选项-》维护->存储文件夹"中看到。我因为以前改掉了,所以不知
- 求助: 有关C语言课程设计
- 怎样判断字符串里存的是英文还是中文,或者中英文都有?
- 摄像机的实时视频图像如何用程序得到?
- 棘手的控件移动问题,非高手勿进
- 将数据库中的二进制图片信息还原为图片
- 请大家帮忙看下这个算法应该怎么实现
public Int32 GetID(string table)
{
Int32 newProdID = 0;
try
{
string sqlstring = "SELECT IDENT_CURRENT(@table) + (SELECT IDENT_INCR(@table)) ";
SqlCommand sqlcmd = new SqlCommand(sqlstring, this.cnn);
sqlcmd.Parameters.Add(new SqlParameter("@table", table));
cnn.Open();
newProdID=Convert.ToInt32( sqlcmd.ExecuteScalar());
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
cnn.Close();
}
return newProdID;
}
=====上面的方法要传入参数(你的主表),可以取得ID号,然后把子表的对应ID=这个取得的值然后将主表与子表的SQL指令拼在一起,用事务提交就可以了....
这种办法中可以取得将要插入的自动ID号,但并发怎么办呢?即在你事务还未完成的情况下,别人已经插入了数据,插入的这个子表的数据不是要关联到别人主表中?
字段ID,A一个事务,我写两条记录到A表,A表的ID是手动+1的,不是自增的.
事务写到第二条记录时,怎么取到第一条记录的ID值?
字段两个:ID,OLID其中ID是int,不自增一个事务
第一个SQL:insert A(ID,OLID)select max(ID+1),'1'
第二个SQL:我要把上一条记录的ID值插入OLID中.要怎么写才可以啊?