using System;

using System.Data;

using System.Data.SqlTypes;

using System.Data.SqlClient;

using System.Collections;

using YellowbridgeSoftwareInc.Info;

 

namespace YellowbridgeSoftwareInc.PersistBase

{

      /// <summary>

      /// Purpose: Data Access class for the table 'Shippers'.

      /// </summary>

      public  class Shippers

      {

            SqlConnection _cn;

           

            public Shippers( string connectionString )

            {

                  _cn = new SqlConnection( connectionString );

            }

           

            public Shippers( SqlConnection cn )

            {

                  _cn = cn;

            }

           

            #region Select One Methods

           

            public ShippersInfo SelectOneInfo( int ShipperID  )

            {

                  SqlCommand cmd = new SqlCommand();

                  DataTable dt = new DataTable("Shippers");

                  cmd.CommandType = CommandType.Text;

                  SqlInt32 _ShipperID = ShipperID;

                 

                  System.Text.StringBuilder sql = new System.Text.StringBuilder();

                 

                  sql.Append("Select ");

                  sql.Append("ShipperID,");

                  sql.Append("CompanyName,");

                  sql.Append("Phone");

                 

                  sql.Append(" From ");

                  sql.Append("[dbo].[Shippers]");

                  sql.Append(" WHERE ");

                  sql.Append("ShipperID = @ShipperID  ");

                 

                  cmd.CommandText = sql.ToString();

                       

                  // Create the info class

                  ShippersInfo data = new ShippersInfo();

                 

                  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

 

                  // Set the connection string

                  cmd.Connection = _cn;

 

                  try

                  {

                              cmd.Parameters.Add(new SqlParameter("@ShipperID", SqlDbType.Int , 4 ,ParameterDirection.Input, false,10 ,0 , "", DataRowVersion.Proposed, _ShipperID ));

                       

                        // Open connection.

                        _cn.Open();

 

                        // Execute query.

                        adapter.Fill(dt);

                        if(dt.Rows.Count > 0)

                        {

                              if ( dt.Rows[0]["Phone"] == System.DBNull.Value )

                                    data.SetPhoneNull();

                              else

                                    data.Phone = (string)dt.Rows[0]["Phone"];

                                         

                              data.ShipperID = (int)dt.Rows[0]["ShipperID"];

                              data.CompanyName = (string)dt.Rows[0]["CompanyName"];

                             

                        }

                       

                        // Return the data

                        return data;

                  }

                  catch(Exception ex)

                  {

                        // Throw the error

                        throw new Exception("An exception has been raised in YellowbridgeSoftwareInc.PersistBase Shippers::SelectOne.", ex);

                  }

                  finally

                  {

                        // Close connection.

                        _cn.Close();

                        cmd.Dispose();

                        adapter.Dispose();

                  }

                 

                 

            }

           

            public void SelectOneInfo(  ref ShippersInfo data, int ShipperID  )

            {

                  SqlCommand cmd = new SqlCommand();

                  DataTable dt = new DataTable("Shippers");

                  cmd.CommandType = CommandType.Text;

                  SqlInt32 _ShipperID = ShipperID;

                 

                  System.Text.StringBuilder sql = new System.Text.StringBuilder();

                 

                  sql.Append("Select ");

                  sql.Append("ShipperID,");

                  sql.Append("CompanyName,");

                  sql.Append("Phone");

                 

                  sql.Append(" From ");

                  sql.Append("[dbo].[Shippers]");

                  sql.Append(" WHERE ");

                  sql.Append("ShipperID = @ShipperID  ");

                 

                  cmd.CommandText = sql.ToString();

                 

                  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

 

                  // Set the connection string

                  cmd.Connection = _cn;

 

                  try

                  {

                              cmd.Parameters.Add(new SqlParameter("@ShipperID", SqlDbType.Int , 4 ,ParameterDirection.Input, false,10 ,0 , "", DataRowVersion.Proposed, _ShipperID ));

                       

                        // Open connection.

                        _cn.Open();

 

                        // Execute query.

                        adapter.Fill(dt);

                        if(dt.Rows.Count > 0)

                        {

                              if ( dt.Rows[0]["Phone"] == System.DBNull.Value )

                                    data.SetPhoneNull();

                              else

                                    data.Phone = (string)dt.Rows[0]["Phone"];

                                         

                              data.ShipperID = (int)dt.Rows[0]["ShipperID"];

                              data.CompanyName = (string)dt.Rows[0]["CompanyName"];

                             

                        }

                  }

                  catch(Exception ex)

                  {

                        // Throw the error

                        throw new Exception("An exception has been raised in YellowbridgeSoftwareInc.PersistBase Shippers::SelectOne.", ex);

                  }

                  finally

                  {

                        // Close connection.

                        _cn.Close();

                        cmd.Dispose();

                        adapter.Dispose();

                  }

                 

                 

            }

           

            public DataTable SelectOneDataTable( int ShipperID  )

            {

                  SqlCommand cmd = new SqlCommand();

                  DataTable dt = new DataTable("Shippers");

                  cmd.CommandType = CommandType.Text;

                  SqlInt32 _ShipperID = ShipperID;

                 

                  System.Text.StringBuilder sql = new System.Text.StringBuilder();

                 

                  sql.Append("Select ");

                  sql.Append("ShipperID,");

                  sql.Append("CompanyName,");

                  sql.Append("Phone");

                 

                  sql.Append(" From ");

                  sql.Append("[dbo].[Shippers]");

                  sql.Append(" WHERE ");

                  sql.Append("ShipperID = @ShipperID  ");

                 

                  cmd.CommandText = sql.ToString();

                       

                  // Create the info class

                  ShippersInfo data = new ShippersInfo();

                 

                  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

 

                  // Set the connection string

                  cmd.Connection = _cn;

 

                  try

                  {

                              cmd.Parameters.Add(new SqlParameter("@ShipperID", SqlDbType.Int , 4 ,ParameterDirection.Input, false,10 ,0 , "", DataRowVersion.Proposed, _ShipperID ));

                       

                        // Open connection.

                        _cn.Open();

 

                        // Execute query.

                        adapter.Fill(dt);

                       

                       

                        // Return the data

                        return dt;

                  }

                  catch(Exception ex)

                  {

                        // Throw the error

                        throw new Exception("An exception has been raised in YellowbridgeSoftwareInc.PersistBase Shippers::SelectOne.", ex);

                  }

                  finally

                  {

                        // Close connection.

                        _cn.Close();

                        cmd.Dispose();

                        adapter.Dispose();

                  }

            }

           

            public SqlDataReader SelectOneDataReader( int ShipperID  )

            {

                  SqlCommand cmd = new SqlCommand();

                  SqlDataReader dr;

                  cmd.CommandType = CommandType.Text;

                  SqlInt32 _ShipperID = ShipperID;

                 

                  System.Text.StringBuilder sql = new System.Text.StringBuilder();

                 

                  sql.Append("Select ");

                  sql.Append("ShipperID,");

                  sql.Append("CompanyName,");

                  sql.Append("Phone");

                 

                  sql.Append(" From ");

                  sql.Append("[dbo].[Shippers]");

                  sql.Append(" WHERE ");

                  sql.Append("ShipperID = @ShipperID  ");

                 

                  cmd.CommandText = sql.ToString();

                       

                  // Create the info class

                  ShippersInfo data = new ShippersInfo();

                 

                  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

 

                  // Set the connection string

                  cmd.Connection = _cn;

 

                  try

                  {

                              cmd.Parameters.Add(new SqlParameter("@ShipperID", SqlDbType.Int , 4 ,ParameterDirection.Input, false,10 ,0 , "", DataRowVersion.Proposed, _ShipperID ));

                       

                        // Open connection if needed.

                        if ( _cn.State == ConnectionState.Closed )

                        {

                              _cn.Open();

                        }

 

                        dr = cmd.ExecuteReader();

                       

                       

                        return dr;

                  }

                  catch(Exception ex)

                  {

                        // Throw the error

                        throw new Exception("An exception has been raised in YellowbridgeSoftwareInc.PersistBase Shippers::SelectOne.", ex);

                  }

                  finally

                  {

                        cmd.Dispose();

                        adapter.Dispose();

                  }

                 

                 

            }

            #endregion

           

            #region Select All Methods

           

            public ShippersInfoCollection SelectAllInfoCollection()

            {

                  SqlCommand cmd = new SqlCommand();

                  DataTable dt = new DataTable("Shippers");

                  cmd.CommandType = CommandType.Text;

                  System.Text.StringBuilder sql = new System.Text.StringBuilder();

                 

                  //Create a collection object

                  ShippersInfoCollection dataCollection = new ShippersInfoCollection();

                 

                  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

 

                  sql.Append("Select ");

                  sql.Append("ShipperID,");

                  sql.Append("CompanyName,");

                  sql.Append("Phone");

                 

                  sql.Append(" From ");

                  sql.Append("[dbo].[Shippers]");

           

                  // Set the command text

                  cmd.CommandText = sql.ToString();

                 

                  // Set the connection string

                  cmd.Connection = _cn;

 

                  try

                  {

                       

                        // Open connection.

                        _cn.Open();

                       

                        // Execute query.

                        adapter.Fill(dt);

                        foreach ( DataRow dr in dt.Rows )

                        {

                              ShippersInfo data = new ShippersInfo();

                             

                              if ( dr["Phone"] == System.DBNull.Value )

                                    data.SetPhoneNull();

                              else

                                    data.Phone = (string)dr["Phone"];

                                         

                              data.ShipperID = (int)dr["ShipperID"];

                              data.CompanyName = (string)dr["CompanyName"];

                             

                              // Add to the data

                              dataCollection.Add( data );

                             

                        }

                       

                        return dataCollection;

                  }

                  catch(Exception ex)

                  {

                        // Throw the error

                        throw new Exception("An exception has been raised in YellowbridgeSoftwareInc.PersistBase Shippers::SelectAll.", ex);

                  }

                  finally

                  {

                        // Close connection.

                        _cn.Close();

                        cmd.Dispose();

                        adapter.Dispose();

                  }

            }

           

            public void SelectAllInfoCollection( ref ShippersInfoCollection dataCollection )

            {

                  SqlCommand cmd = new SqlCommand();

                  DataTable dt = new DataTable("Shippers");

                  cmd.CommandType = CommandType.Text;

                  System.Text.StringBuilder sql = new System.Text.StringBuilder();

                 

                  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

 

                  sql.Append("Select ");

                  sql.Append("ShipperID,");

                  sql.Append("CompanyName,");

                  sql.Append("Phone");

                 

                  sql.Append(" From ");

                  sql.Append("[dbo].[Shippers]");

           

                  // Set the command text

                  cmd.CommandText = sql.ToString();

                 

                  // Set the connection string

                  cmd.Connection = _cn;

 

                  try

                  {

                       

                        // Open connection.

                        _cn.Open();

                       

                        // Execute query.

                        adapter.Fill(dt);

                        foreach ( DataRow dr in dt.Rows )

                        {

                              ShippersInfo data = new ShippersInfo();

                             

                              if ( dr["Phone"] == System.DBNull.Value )

                                    data.SetPhoneNull();

                              else

                                    data.Phone = (string)dr["Phone"];

                                         

                              data.ShipperID = (int)dr["ShipperID"];

                              data.CompanyName = (string)dr["CompanyName"];

                             

                              // Return the data

                              dataCollection.Add( data );

                             

                        }

                  }

                  catch(Exception ex)

                  {

                        // Throw the error

                        throw new Exception("An exception has been raised in YellowbridgeSoftwareInc.PersistBase Shippers::SelectAll.", ex);

                  }

                  finally

                  {

                        // Close connection.

                        _cn.Close();

                        cmd.Dispose();

                        adapter.Dispose();

                  }

            }

           

            public DataTable SelectAllDataTable()

            {

                  SqlCommand cmd = new SqlCommand();

                  DataTable dt = new DataTable("Shippers");

                  cmd.CommandType = CommandType.Text;

                  System.Text.StringBuilder sql = new System.Text.StringBuilder();

                 

                  //Create a collection object

                  ShippersInfoCollection dataCollection = new ShippersInfoCollection();

                 

                  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

 

                  sql.Append("Select ");

                  sql.Append("ShipperID,");

                  sql.Append("CompanyName,");

                  sql.Append("Phone");

                 

                  sql.Append(" From ");

                  sql.Append("[dbo].[Shippers]");

           

                  // Set the command text

                  cmd.CommandText = sql.ToString();

                 

                  // Set the connection string

                  cmd.Connection = _cn;

 

                  try

                  {

                       

                        // Open connection.

                        _cn.Open();

                       

                        // Execute query.

                        adapter.Fill(dt);

                       

                        return dt;

                  }

                  catch(Exception ex)

                  {

                        // Throw the error

                        throw new Exception("An exception has been raised in YellowbridgeSoftwareInc.PersistBase Shippers::SelectAll.", ex);

                  }

                  finally

                  {

                        // Close connection.

                        _cn.Close();

                        cmd.Dispose();

                        adapter.Dispose();

                  }

            }

           

            public SqlDataReader SelectAllDataReader()

            {

                  SqlCommand cmd = new SqlCommand();

                  SqlDataReader dr;

                  cmd.CommandType = CommandType.Text;

                  System.Text.StringBuilder sql = new System.Text.StringBuilder();

                 

                  //Create a collection object

                  ShippersInfoCollection dataCollection = new ShippersInfoCollection();

                 

                  SqlDataAdapter adapter = new SqlDataAdapter(cmd);

 

                  sql.Append("Select ");

                  sql.Append("ShipperID,");

                  sql.Append("CompanyName,");

                  sql.Append("Phone");