using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace StudentDAL.Operator
{
   
    public class DataAccess
    {
        private SqlConnection objSqlConnection;
        private SqlCommand objSqlCommand;
        private SqlDataAdapter objSqlDataAdapter;
        
        public DataAccess()
        { 
            //连接数据库
             string con="";
            try
            {
                con=ConfigurationManager.ConnectionStrings["sql2000"].ConnectionString;
                objSqlConnection=new SqlConnection(con);
                objSqlCommand=new SqlCommand("",objSqlConnection);
                objSqlDataAdapter=new SqlDataAdapter(objSqlCommand);            }catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        //使用事物执行对学员信息表和成绩表的数据删除
         public bool Del(int id)
        {            try
            {
                objSqlConnection.Open();
                //开始事物
                  objSqlTransaction = objSqlConnection.BeginTransaction();
                objSqlCommand.Connection = objSqlConnection;
                objSqlCommand.Transaction = objSqlTransaction;
                objSqlCommand.CommandText = "delete from Student where StudentId=" + id +"";
                objSqlCommand.ExecuteNonQuery();
                objSqlCommand.CommandText = "delete from Score where StudentId=" + id + "";
                
                objSqlCommand.ExecuteNonQuery();
                objSqlTransaction.Commit();
                return true;            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                objSqlTransaction.Rollback();
            }
            finally
            {
                objSqlConnection.Close();
            }
            return false;
        }

解决方案 »

  1.   

    用空格连成一个字符串,然后就按照一条SQL语句来处理就可以了 不过多SQL 处理,建议用Store Procedureusing System; 
    using System.Collections.Generic; 
    using System.Text; 
    using System.Data; 
    using System.Data.SqlClient; 
    using System.Configuration; namespace StudentDAL.Operator 

      
        public class DataAccess 
        { 
            private SqlConnection objSqlConnection; 
            private SqlCommand objSqlCommand; 
            private SqlDataAdapter objSqlDataAdapter; 
            
            public DataAccess() 
            { 
                //连接数据库 
                string con=""; 
                try 
                { 
                    con=ConfigurationManager.ConnectionStrings["sql2000"].ConnectionString; 
                    objSqlConnection=new SqlConnection(con); 
                    objSqlCommand=new SqlCommand("",objSqlConnection); 
                    objSqlDataAdapter=new SqlDataAdapter(objSqlCommand);             }catch(Exception ex) 
                { 
                    Console.WriteLine(ex.Message); 
                } 
            } 
            //使用事物执行对学员信息表和成绩表的数据删除 
            public bool Del(int id) 
            {             try 
                { 
                    objSqlConnection.Open(); 
                    //开始事物 
                      objSqlTransaction = objSqlConnection.BeginTransaction(); 
                    objSqlCommand.Connection = objSqlConnection; 
                    objSqlCommand.Transaction = objSqlTransaction; 
                    objSqlCommand.CommandText = "delete from Student where StudentId=" + id +"  delete from Score where StudentId=" + id + ""; 
                    
                    objSqlCommand.ExecuteNonQuery(); 
                    objSqlTransaction.Commit(); 
                    return true;             } 
                catch (Exception ex) 
                { 
                    Console.WriteLine(ex.Message); 
                    objSqlTransaction.Rollback(); 
                } 
                finally 
                { 
                    objSqlConnection.Close(); 
                } 
                return false; 
            }
      

  2.   

    什么错误?objSqlConnection.Open(); 
                    //开始事物         
                    objSqlCommand.Connection = objSqlConnection; 
                     SqlTransaction tran=objSqlCommand.Transaction.BeginTransaction();
                    objSqlCommand.CommandText = "delete from Student where StudentId=" + id +""; 
                    objSqlCommand.ExecuteNonQuery(); 
                    objSqlCommand.CommandText = "delete from Score where StudentId=" + id + ""; 
                    
                    objSqlCommand.ExecuteNonQuery(); 
                     tran.Commit();
                    return true; 
      

  3.   

    楼上的你给的代码错误的把SqlTransaction tran=objSqlCommand.Transaction.BeginTransaction(); 
    点都点不出的
      

  4.   

     SqlTransaction tran=objSqlCommand.Connection.BeginTransaction();
    不好意思。好久没用了。忘记了,应该是connection中的BeginTransaction