| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 185 人关注过本帖
标题:求助.net事务处理!!!!谢谢
收藏  订阅  推荐  打印
本主题由 静夜思 于 2008-8-2 21:19 拒绝承认原创
fhqvj871113
Rank: 1
等级:新手上路
帖子:2
积分:122
注册:2008-8-2
求助.net事务处理!!!!谢谢

本人想处理事务删除两个相关表中的内容,但以下代码会自动产生异常直接抛出,无法正常运行。希望各位高手可以帮忙,谢谢
(存储过程没有问题,在没加事务之前正常删除过表中内容)



      
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace Group_ComputerInformation
{
    public class Student_Computer
    {        
        private static string connectiondatabase = @"Server= 192.168.151.174;User=sa;PWD=000000 ;Database = StudentManagement;";
        /// <summary>
        /// 删除表Student_OperationSystem中的信息,需先删除与之相关表中内容,此过程为删除相关表的内容
        /// </summary>
        /// <param name="operationsystem_ID">删除条件参数</param>
        public void OS_delete_ComputerInformation(SqlConnection database,int operationsystem_ID)
        {
            SqlCommand cmd = new SqlCommand("OS_delete_ComputerInformation",database);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Clear();
            cmd.Parameters.Add("@OperationSystem_ID", SqlDbType.Int);
            cmd.Parameters["@OperationSystem_ID"].Value = operationsystem_ID;
            cmd.ExecuteNonQuery();
        }
        /// <summary>
        /// 删除表Student_OperationSystem中的信息,删除过相关表后,才执行次过程
        /// </summary>
        /// <param name="operationsystem_ID">删除条件参数</param>
        public void OS_delete_OperationSystem(SqlConnection database,int operationsystem_ID)
        {
            SqlCommand cmd = new SqlCommand("OS_delete_OperationSystem",database);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Clear();
            cmd.Parameters.Add("@ID", SqlDbType.Int);
            cmd.Parameters["@ID"].Value = operationsystem_ID;
            cmd.ExecuteNonQuery();
        }
        /// <summary>
        /// 删除表Student_OperationSystem中内容的事务处理
        /// </summary>
        /// <param name="operationsystem_ID"></param>
        public void TS_OS_delete_OperationSystem(int operationsystem_ID)
        {

            SqlConnection database = new SqlConnection(connectiondatabase);
            database.Open();
            SqlTransaction sqlTran = database.BeginTransaction();            
            SqlCommand command = database.CreateCommand();
            command.Connection = database;
            command.Transaction = sqlTran;
            try
            {
                OS_delete_ComputerInformation(database,operationsystem_ID);
                OS_delete_OperationSystem(database,operationsystem_ID);               
                sqlTran.Commit();
            }
            catch (Exception ex)
            {
                sqlTran.Rollback();
            }
            finally
            {
                database.Close();
            }
        }
}
2008-8-2 19:20
共有 184 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053172 second(s), 10 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved