请大侠帮我瞧瞧(为什么不能同时插入!)

xiajancy 2003-07-24 10:15:30
我想用事务向三张不同的表中插入数据,而且有两张表中插入的为新加入的课程表中的id值,请问如何写才对?
private void Button1_Click(object sender, System.EventArgs e)
{
string zhuanye=this.zhuanye.SelectedItem.Value;
string kecheng=this.kecheng.Text.Trim();
string Sql2="select 课程名称,专业名称 from 课程 where 课程名称='"+kecheng+"' and 专业名称='"+zhuanye+"'";
System.Data.SqlClient.SqlDataAdapter Myad=new System.Data.SqlClient.SqlDataAdapter(Sql2,Mycon);
System.Data.DataSet Myds=new DataSet();
Myad.Fill(Myds);
string maxid1=("select max(id) from 课程")+1;
string nodeid1=("select max(nodeid) from 课程结构")+1;
string nodeid2=("select max(nodeid) from 章节内容")+1;
if (Myds.Tables[0].Rows.Count!=1)
{
//启动一个事务
SqlTransaction myTrans = Mycon.BeginTransaction();
SqlCommand myCommand = new SqlCommand();
myCommand.Connection=Mycon;
myCommand.Transaction=myTrans;
try
{
myCommand.CommandText="insert into 课程 (专业名称,课程名称) values (@专业名称,@课程名称)";
myCommand.Parameters.Add(new SqlParameter("@专业名称",System.Data.SqlDbType.Char,100));
myCommand.Parameters["@专业名称"].Value=zhuanye;
myCommand.Parameters.Add(new SqlParameter("@课程名称",System.Data.SqlDbType.Char,100));
myCommand.Parameters["@课程名称"].Value=kecheng;
myCommand.ExecuteNonQuery();
myCommand.CommandText="insert into 课程结构 (nodeid,sub_id) values (nodeid1,maxid1)";
myCommand.ExecuteNonQuery();
myCommand.CommandText="insert into 章节内容 (nodeid2) values (nodeid)";
myCommand.ExecuteNonQuery();
myTrans.Commit();
}
catch
{
myTrans.Rollback();
}
finally
{
Mycon.Close();
}


}
else
{
Response.Write("<script language='javascript'>alert('注意!此专业下已经添加了该课程!');</script>");
}
}
...全文
22 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
drason 2003-07-25
  • 打赏
  • 举报
回复
同意 ruyedian(710℃ 高烧)

如果还不可以,建议把错误贴出来~~
golook 2003-07-24
  • 打赏
  • 举报
回复
没有用过事务!不好意思
ruyedian 2003-07-24
  • 打赏
  • 举报
回复
myCommand.CommandText="insert into 课程结构 (nodeid,sub_id) values (" & nodeid1 & "," & maxid1 & ")";
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2003-07-24 10:15
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。