如果 SQL语句2 是查询sql,怎么取到查询的返回值
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection("连接字符串");
cmd.Connection.Open();
cmd.Transaction = cmd.Connection.BeginTransaction(IsolationLevel.ReadUncommitted);
try
{
    cmd.CommandText = "SQL语句1";
    int result = cmd.ExecuteNonQuery();
    if (result <= 0)
    {
        cmd.Transaction.Rollback();
        return;
    }    cmd.CommandText = "SQL语句2";
    result = cmd.ExecuteNonQuery();
    if (result <= 0)
    {
        cmd.Transaction.Rollback();
        return;
    }    cmd.CommandText = "SQL语句3";
    result = cmd.ExecuteNonQuery();
    if (result <= 0)
    {
        cmd.Transaction.Rollback();
        return;
    }    //提交事务
    cmd.Transaction.Commit();
}
catch
{
    cmd.Transaction.Rollback();
}
finally
{
    cmd.Connection.Close();
    cmd.Connection.Dispose();
    cmd.Dispose();
}

解决方案 »

  1.   

    cmd.CommandText = "select count(*) from A";
    object countResult = cmd.ExecuteScalar();
      

  2.   

        cmd.CommandText = "用于返回查询结果的SQL语句,比如Select * from ...";
        SqlDataAdapter dataAdapter = new SqlDataAdapter();
        dataAdapter.SelectCommand = cmd;     DataSet dataSet = new DataSet();
        dataAdapter.Fill(dataSet);    if(dataSet == null || dataSet.Tables.Count <= 0)
              没有查询到数据;    //取出每一行每一列的数据
        foreach(DataRow dataRow in dataSet.Tables[0].Rows)
        {
              string value = string.Empty;
              if(!dataRow.IsNull(0))
                    value = dataRow[0].ToString();          value = string.Empty;
              if(!dataRow.IsNull(1))
                    value = dataRow[1].ToString();
                     
              。。
         }
      

  3.   


    int[] results = new int[3];
    try
    {
        cmd.CommandText = "SQL语句1";
        int result = cmd.ExecuteNonQuery();
        results[0] = result;
        if (result <= 0)
        {
            cmd.Transaction.Rollback();
            return;
        }    cmd.CommandText = "SQL语句2";
        result = cmd.ExecuteNonQuery();
        results[1] = result;
        if (result <= 0)
        {
            cmd.Transaction.Rollback();
            return;
        }    cmd.CommandText = "SQL语句3";
        result = cmd.ExecuteNonQuery();
        results[2] = result;
        if (result <= 0)
        {
            cmd.Transaction.Rollback();
            return;
        }    //提交事务
        cmd.Transaction.Commit();
    }
    //return results
      

  4.   

    其实你不用每局都写cmd.Transaction.Rollback(); 的,就在最后执行的时候写上,如果上面的执行错误,就直接回滚了