All pastes #491015 Raw Edit

Stuff

public text v1 · immutable
·published 2007-05-16 11:33 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace OrionGames
{
    public partial class OrionGames : Form
    {
        SqlConnection sqlConnection;
        SqlDataReader myReader;

        public OrionGames()
        {
            InitializeComponent();

            //connect to the SQL Database
            String connectionString = "Data Source=localhost;" + 
                "database=orion;" +
                "Integrated Security = true;" +
                "connection timeout=15;";
            sqlConnection = new SqlConnection(connectionString);
            sqlConnection.Open();
        }

        //closes SQL Connection if form is closed
        private void OrionGames_FormClosed(object sender, FormClosedEventArgs e)
        {
            sqlConnection.Close();
        }

        //used to enable or disable the member information controls
        private void EnableMemControls(bool enabled)
        {
            txtMemFName.Enabled = enabled;
            txtMemLName.Enabled = enabled;
            txtMemAddress.Enabled = enabled;
            txtMemEmail.Enabled = enabled;
            txtMemPhone.Enabled = enabled;
            txtMemMobile.Enabled = enabled;
            dateMemBDae.Enabled = enabled;
            dateMemJoin.Enabled = enabled;
            chkMemIsActive.Enabled = enabled;
            numMemOverdue.Enabled = enabled;
        }

        //used to reset the members controls to the next empty "mid" in the database
        private void ResetControls()
        {
            SqlCommand findID;
            List<string> emptyID = new List<string>();
            myReader = null;
            string strCommand;

            //gets the ID number of members from database
            strCommand = "select mid from member";
            findID = new SqlCommand(strCommand, sqlConnection);
            myReader = findID.ExecuteReader();

            if (myReader.HasRows)
            {
                while (myReader.Read())
                {
                    emptyID.Add(myReader["mid"].ToString());
                }

                int lastID = 0;

                //checks the next empty Id number in the database
                foreach (string id in emptyID)
                {
                    int intID = Convert.ToInt32(id);

                    if (intID > lastID)
                    {
                        lastID = intID;
                    }
                }

                lblMemIDNum.Text = Convert.ToString(lastID + 1);

                myReader.Close();
            }

            txtMemFName.Text = "";
            txtMemLName.Text = "";
            txtMemAddress.Text = "";
            txtMemEmail.Text = "";
            txtMemPhone.Text = "";
            txtMemMobile.Text = "";
            dateMemBDae.Value = DateTime.Now;
            dateMemJoin.Value = DateTime.Now;
        }

        //handler to enable the controls for a new member with the next empty ID number
        private void btnMemNew_Click(object sender, EventArgs e)
        {
            ResetControls();

            EnableMemControls(true);
        }

        //hadler to enable controls and update the existing member in the database
        private void btnEditMem_Click(object sender, EventArgs e)
        {
            EnableMemControls(true);
        }

        //handler to search through the database for matches with the given information
        private void btnMemSearch_Click(object sender, EventArgs e)
        {
            listMembers.Items.Clear();

            SqlCommand findMember;
            string[] member = new string[11];
            string strCommand;
            myReader = null;

            if (txtSearchFName.Text == "" && txtSearchLName.Text == ""
                && txtSearchEmail.Text == "" && chkSearchMemIsActive.Checked == false)
            {
                strCommand = "select * from member";
            }
            else
            {
                string strFName = "";
                string strLName = "";
                string strEMail = "";
                string strActive = "";

                if (txtSearchFName.Text != "")
                {
                    strFName = "mfirst = " + "'" + txtSearchFName.Text + "'" + "and ";
                }
                if (txtSearchLName.Text != "")
                {
                    strLName = "mlast = " + "'" + txtSearchLName.Text + "'" + "and ";
                }
                if (txtSearchEmail.Text != "")
                {
                    strEMail = "memail = " + "'" + txtSearchEmail.Text + "'" + "and ";
                }
                if (chkSearchMemIsActive.Checked)
                {
                    strActive = "mstatus = 1 and ";
                }
                if (!chkSearchMemIsActive.Checked)
                {
                    strActive = "mstatus = 0 and ";
                }

                strCommand = "select * from member where " + strFName + strLName + strEMail + strActive;

                //deletes the last four characters that aren't needed for the query
                strCommand = strCommand.Remove(strCommand.Length - 4, 4); ;
            }

            findMember = new SqlCommand(strCommand, sqlConnection);
            myReader = findMember.ExecuteReader();

            //if there are results from the query, will be placed in the listview control
            if (myReader.HasRows)
            {
                while(myReader.Read())
                {
                    member[0] = myReader["mid"].ToString();
                    member[1] = myReader["mfirst"].ToString();
                    member[2] = myReader["mlast"].ToString();
                    member[3] = myReader["madd"].ToString();
                    member[4] = myReader["mhomephone"].ToString();
                    member[5] = myReader["mmobile"].ToString();
                    member[6] = myReader["mdob"].ToString();
                    member[7] = myReader["memail"].ToString();
                    member[8] = myReader["mjoindate"].ToString();
                    member[9] = myReader["mstatus"].ToString();
                    member[10] = myReader["mnum_overdue"].ToString();

                    listMembers.Items.Add(new ListViewItem(member));
                }

                listMembers.Focus();
                myReader.Close();
            }
            else
            {
                MessageBox.Show("No data matches your search.");

                txtSearchFName.Focus();
                myReader.Close();
            }
        }

        //handler to add row into the database member table
        private void btnSaveMem_Click(object sender, EventArgs e)
        {

        }

        //a mousedown handler on the listview control to view the information
        //into the members controls if needed to be edited
        private void listMembers_MouseDown(object sender, MouseEventArgs e)
        {
            ListViewItem selection = listMembers.GetItemAt(e.X, e.Y);

            //if there is data selected in the listview control
            if (selection != null)
            {
                lblMemIDNum.Text = selection.SubItems[0].Text;
                txtMemFName.Text = selection.SubItems[1].Text;
                txtMemLName.Text = selection.SubItems[2].Text;
                txtMemAddress.Text = selection.SubItems[3].Text;
                txtMemPhone.Text = selection.SubItems[4].Text;
                txtMemMobile.Text = selection.SubItems[5].Text;
                txtMemEmail.Text = selection.SubItems[7].Text;

                string[] date = new string[3];

                string bdae = selection.SubItems[6].Text;
                string newbdaedate;

                date = bdae.Split('/');
                newbdaedate = date[1] + "/" + date[0] + "/" + date[2];
                dateMemBDae.Value = Convert.ToDateTime(newbdaedate);

                date = new string[3];

                string join = selection.SubItems[8].Text;
                string newjoindate;

                date = join.Split('/');
                newjoindate = date[1] + "/" + date[0] + "/" + date[2];
                dateMemJoin.Value = Convert.ToDateTime(newjoindate);

                numMemOverdue.Value = Convert.ToDecimal(selection.SubItems[10].Text);

                bool active = Convert.ToBoolean(selection.SubItems[9].Text);
                chkMemIsActive.Checked = active;
            }
        }
    }
}