怎样同时向两个表插入数据 RT!是写两个SQL语句,执行两次呢.还是有办法可以一次执行的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 2个SQL语句,不过可以写在一个方法里 写两个insert语句,用事务封装他们public int Add(PowerMis.Model.JiaoPeiZhongXin.DianGongDangAn dgda) { using (SqlConnection conn = new SqlConnection(strDBConnectionString)) { int ID=GetMaxId(); StringBuilder strSql=new StringBuilder(); strSql.Append("insert into T_DianGongDangAn("); strSql.Append("ID,XingMing,PhotoName,XingBie,ShengRi,WenHuaChD,DangYuan,ShenGao,"); strSql.Append("DianGongRiQi,DianGongBH,KeShidm,ShenFenZheng,BeiZhu"); strSql.Append(") values ("); strSql.Append(""+ID+","); strSql.Append("'"+dgda.XingMing+"',"); strSql.Append("'"+dgda.PhotoName+"',"); strSql.Append("'"+dgda.XingBie+"',"); strSql.Append("'"+dgda.ShengRi+"',"); strSql.Append("'"+dgda.WenHuaChD+"',"); strSql.Append("'"+dgda.DangYuan+"',"); strSql.Append(""+dgda.ShenGao+","); strSql.Append("'"+dgda.DianGongRiQi+"',"); strSql.Append("'"+dgda.DianGongBH+"',"); strSql.Append(""+dgda.KeShidm+","); strSql.Append("'"+dgda.ShenFenZheng+"',"); strSql.Append("'"+dgda.BeiZhu+"'"); strSql.Append(")"); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection=conn; SqlTransaction tx=conn.BeginTransaction(); cmd.Transaction=tx; try { cmd.CommandText=strSql.ToString(); cmd.ExecuteNonQuery(); foreach(DianGongDangAnJL item in dgda.DianGongDangAnJLs) { strSql=new StringBuilder(); strSql.Append("insert into T_DianGongDangAnJL("); strSql.Append("ID,RiQi,ZhiWu,ZhengMingRen,Count"); strSql.Append(") values ("); strSql.Append(""+ID+","); strSql.Append("'"+item.RiQi+"',"); strSql.Append("'"+item.ZhiWu+"',"); strSql.Append("'"+item.ZhengMingRen+"',"); strSql.Append(""+item.Count+""); strSql.Append(")"); cmd.CommandText=strSql.ToString(); cmd.ExecuteNonQuery(); } foreach(DianGongDangAnHJ item in dgda.DianGongDangAnHJs) { strSql=new StringBuilder(); strSql.Append("insert into T_DianGongDangAnHJ("); strSql.Append("ID,RiQi,JiLu,Count"); strSql.Append(") values ("); strSql.Append(""+ID+","); strSql.Append("'"+item.RiQi+"',"); strSql.Append("'"+item.JiLu+"',"); strSql.Append(""+item.Count+""); strSql.Append(")"); cmd.CommandText=strSql.ToString(); cmd.ExecuteNonQuery(); } tx.Commit(); } catch(System.Exception ex) { tx.Rollback(); throw new Exception("插入数据失败!"+ex.Message); } return ID; }//using } 可以做一个触发器,当向一个表中insert时,同时向另一个表作insert操作 我的意见和 tmeteor() 相同,可以考虑触发器 一定是要用事务的,保证写入数据的完整性,如果跨数据库操作,是得走com+的事务 .net的事务 或者数据库的存储过程 出发器等 当然具体的问题 要具体分析 楼上说的很对,用事务来做SqlTransaction Trans;Trans=cn.BeginTransaction();cmd.Transaction=Trans;{insert into insert intoTrans.Commit();}catch(){Trans.Rollback();} 求,泛型读值的问题 0x800A01F4 executescalar()的问题 请问这个动态SQL什么意思,符号特别多,看的头晕 第一次问问题,100分问个简单的问题,哈哈 框架中关闭窗口的问题 再说webform和winform的控制,大家讨论下,看这个思路怎样 如何在程序中动态的建立一个虚拟目录? asp.net的速度比较 怎么在vs2019使用asp net mvc 4 为什么webservice不能在其他计算机上访问? 高分求教!
public int Add(PowerMis.Model.JiaoPeiZhongXin.DianGongDangAn dgda)
{
using (SqlConnection conn = new SqlConnection(strDBConnectionString))
{
int ID=GetMaxId();
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into T_DianGongDangAn(");
strSql.Append("ID,XingMing,PhotoName,XingBie,ShengRi,WenHuaChD,DangYuan,ShenGao,");
strSql.Append("DianGongRiQi,DianGongBH,KeShidm,ShenFenZheng,BeiZhu");
strSql.Append(") values (");
strSql.Append(""+ID+",");
strSql.Append("'"+dgda.XingMing+"',");
strSql.Append("'"+dgda.PhotoName+"',");
strSql.Append("'"+dgda.XingBie+"',");
strSql.Append("'"+dgda.ShengRi+"',");
strSql.Append("'"+dgda.WenHuaChD+"',");
strSql.Append("'"+dgda.DangYuan+"',");
strSql.Append(""+dgda.ShenGao+",");
strSql.Append("'"+dgda.DianGongRiQi+"',");
strSql.Append("'"+dgda.DianGongBH+"',");
strSql.Append(""+dgda.KeShidm+",");
strSql.Append("'"+dgda.ShenFenZheng+"',");
strSql.Append("'"+dgda.BeiZhu+"'");
strSql.Append(")");
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection=conn;
SqlTransaction tx=conn.BeginTransaction();
cmd.Transaction=tx;
try
{
cmd.CommandText=strSql.ToString();
cmd.ExecuteNonQuery(); foreach(DianGongDangAnJL item in dgda.DianGongDangAnJLs)
{
strSql=new StringBuilder();
strSql.Append("insert into T_DianGongDangAnJL(");
strSql.Append("ID,RiQi,ZhiWu,ZhengMingRen,Count");
strSql.Append(") values (");
strSql.Append(""+ID+",");
strSql.Append("'"+item.RiQi+"',");
strSql.Append("'"+item.ZhiWu+"',");
strSql.Append("'"+item.ZhengMingRen+"',");
strSql.Append(""+item.Count+"");
strSql.Append(")");
cmd.CommandText=strSql.ToString();
cmd.ExecuteNonQuery();
}
foreach(DianGongDangAnHJ item in dgda.DianGongDangAnHJs)
{
strSql=new StringBuilder();
strSql.Append("insert into T_DianGongDangAnHJ(");
strSql.Append("ID,RiQi,JiLu,Count");
strSql.Append(") values (");
strSql.Append(""+ID+",");
strSql.Append("'"+item.RiQi+"',");
strSql.Append("'"+item.JiLu+"',");
strSql.Append(""+item.Count+"");
strSql.Append(")");
cmd.CommandText=strSql.ToString();
cmd.ExecuteNonQuery();
} tx.Commit();
}
catch(System.Exception ex)
{
tx.Rollback();
throw new Exception("插入数据失败!"+ex.Message);
}
return ID;
}//using }
SqlTransaction Trans;
Trans=cn.BeginTransaction();
cmd.Transaction=Trans;
{
insert into
insert into
Trans.Commit();}
catch()
{
Trans.Rollback();}