首页 新闻 搜索 专区 学院

急急急求助!两张表的更新

0
[已关闭问题]
<P>表A和B,A表有项(姓名,学号,班级)列, B表有(班代码,班级名称,人数)3列</P> <P>现在我要把B表里 班级2合并到班级1,那么就应该先把2班的人数加到1班,再删除2班这条记录,然后,再把A表中属于2班的学生更新为班</P> <P>在VS2005里应该怎么做?触发器?存储过程?或者别的方法,希望哪位大侠可以给我详细点的答案,先谢谢了</P> <P>我想用TextBox1和TextBox2分别输入班级名称(或者班级代码),用Button1实现合并代码</P> <P>拜托,拜托</P> <P>&nbsp;&nbsp; </P> <P>&nbsp;</P> <P>&nbsp;</P>
hkunqiong的主页 hkunqiong | 初学一级 | 园豆:200
提问于:2008-04-18 20:18
< >
分享
其他回答(2)
0
在Button1的Click事件里调用存储过程[sp_updateclass],TextBox1和TextBox2分别输入班级1、班级2代码,作为存储过程的参数(@ClassIDOne,@ClassIDTwo)。 Table_A(表A)字段: [Name] [varchar](20) NOT NULL [ID] [varchar](10) NOT NULL [PRIMARY] [ClassID] [varchar](10) NOT NULL Table_B(表B)字段: [ClassID] [varchar](10) NOT NULL [PRIMARY] [ClassName] [varchar](50) NOT NULL [Number] [int] 存储过程[sp_updateclass]执行到数据库(SQL Server 2005 Express下测试通过) /* 班级2合并到班级1 班级1:@ClassIDOne 班级2:@ClassIDTwo */ CREATE PROCEDURE [sp_updateclass] ( @ClassIDOne varchar(10), @ClassIDTwo varchar(10) ) AS --把2班的人数加到1班 UPDATE Table_B SET Number = Number + ISNULL( ( SELECT Number FROM Table_B WHERE ClassID = @ClassIDTwo ),0) WHERE ClassID = @ClassIDOne --删除2班这条记录 DELETE FROM Table_B WHERE ClassID = @ClassIDTwo --A表中属于2班的学生更新为1班 UPDATE Table_A SET ClassID = @ClassIDOne WHERE ClassID = @ClassIDTwo *VS2005里的调用方法: 1、首先添加引用 using System.Data.SqlClient; 2、添加Click事件 protected void Button1_Click(object sender, EventArgs e) { string strCon = "Data Source=.\\SQLEXPRESS;initial catalog=Test;user id=sa;password=sqlsa;Pooling=true;"; using (SqlConnection cn = new SqlConnection(strCon)) { cn.Open(); SqlTransaction tr = null; try { tr = cn.BeginTransaction();// 开始事务 using (SqlCommand cm = cn.CreateCommand()) { cm.CommandText = "sp_updateclass"; cm.CommandType = CommandType.StoredProcedure; cm.Parameters.AddWithValue("@ClassIDOne ", TextBox1.Text.Trim()); cm.Parameters.AddWithValue("@ClassIDTwo ", TextBox2.Text.Trim()); cm.Transaction = tr; cm.ExecuteNonQuery(); tr.Commit();// 提交事务 Response.Write("<script>alert('更新成功!')</script>"); } } catch (Exception ex) { tr.Rollback();// 回滚事务 Response.Write(ex.Message); } } }
PCJIM | 园豆:210 (菜鸟二级) | 2008-04-19 02:22
0
上面的差不多!不知道能实现不!
HamunNet | 园豆:25 (初学一级) | 2008-04-19 11:58
0
个人觉得最好是用事务,另外我好象在项目中没怎么用过存储过程来,不知道大家在项目中应用的多不多?
张荣华 | 园豆:2020 (老鸟四级) | 2008-04-21 09:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册