Пример #1
0
        /// <summary>
        /// Gets the course object for a given course id
        /// </summary>
        /// <param name="id">The id of the course</param>
        /// <returns>Returns the course</returns>
        public static Course GetCourse(int id)
        {
            Course course = null;

            try
            {
                SqlConnection  db = new SqlConnection(connectionString);
                SqlTransaction transaction;

                db.Open();

                transaction = db.BeginTransaction(IsolationLevel.ReadCommitted);
                try
                {
                    SqlCommand cmd = new SqlCommand("SELECT C.id_course, C.name, C.[key], C.active, R.id_person, R.firstname, R.lastname, C.timestamp " +
                                                    "FROM Course C " +
                                                    "INNER JOIN Responsible R ON R.id_person = C.id_person " +
                                                    "WHERE C.id_course=@id_course;", db, transaction);

                    cmd.Parameters.Add("@id_course", SqlDbType.Int).Value = id;

                    SqlDataReader rdr = cmd.ExecuteReader();

                    if (rdr.Read())
                    {
                        string name      = rdr.GetString(rdr.GetOrdinal("name"));
                        string key       = rdr.GetString(rdr.GetOrdinal("Key"));
                        bool   active    = rdr.GetBoolean(rdr.GetOrdinal("active"));
                        int    id_person = rdr.GetInt32(rdr.GetOrdinal("id_person"));
                        int    id_course = rdr.GetInt32(rdr.GetOrdinal("id_course"));

                        course = new Course(id_course, name, key,
                                            active, id_person);
                        course.ResponsibleString = rdr.GetString(rdr.GetOrdinal("firstname")) + " " + rdr.GetString(rdr.GetOrdinal("lastname"));
                        byte[] buffer = new byte[100];
                        rdr.GetBytes(rdr.GetOrdinal("timestamp"), 0, buffer, 0, 100);
                        course.setTimestamp(buffer);
                    }
                    rdr.Close();
                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new GrException(e, Messages.errProd);
                }
                db.Close();
            }
            catch (Exception e)
            {
                if (e is GrException)
                {
                    throw e;
                }
                throw new GrException(e, Messages.errProd);
            }

            return(course);
        }
Пример #2
0
        /// <summary>
        /// Gets the course object for a given course id
        /// </summary>
        /// <param name="id">The id of the course</param>
        /// <returns>Returns the course</returns>
        public static Course GetCourse(int id)
        {
            Course course = null;

            try
            {
                SqlConnection db = new SqlConnection(connectionString);
                SqlTransaction transaction;

                db.Open();

                transaction = db.BeginTransaction(IsolationLevel.ReadCommitted);
                try
                {
                    SqlCommand cmd = new SqlCommand("SELECT C.id_course, C.name, C.[key], C.active, R.id_person, R.firstname, R.lastname, C.timestamp " +
                                                    "FROM Course C " +
                                                    "INNER JOIN Responsible R ON R.id_person = C.id_person " +
                                                    "WHERE C.id_course=@id_course;", db, transaction);

                    cmd.Parameters.Add("@id_course", SqlDbType.Int).Value = id;

                    SqlDataReader rdr = cmd.ExecuteReader();

                    if (rdr.Read())
                    {
                        string name = rdr.GetString(rdr.GetOrdinal("name"));
                        string key = rdr.GetString(rdr.GetOrdinal("Key"));
                        bool active = rdr.GetBoolean(rdr.GetOrdinal("active"));
                        int id_person = rdr.GetInt32(rdr.GetOrdinal("id_person"));
                        int id_course = rdr.GetInt32(rdr.GetOrdinal("id_course"));

                        course = new Course(id_course, name, key,
                                                   active, id_person);
                        course.ResponsibleString = rdr.GetString(rdr.GetOrdinal("firstname")) + " " + rdr.GetString(rdr.GetOrdinal("lastname"));
                        byte[] buffer = new byte[100];
                        rdr.GetBytes(rdr.GetOrdinal("timestamp"), 0, buffer, 0, 100);
                        course.setTimestamp(buffer);
                    }
                    rdr.Close();
                    transaction.Commit();
                }
                catch(Exception e)
                {
                    transaction.Rollback();
                    throw new GrException(e, Messages.errProd);
                }
                db.Close();
            }
            catch(Exception e)
            {
                if (e is GrException) throw e;
                throw new GrException(e, Messages.errProd);
            }

            return course;
        }