終於等到這樣的一天啦,嘿嘿


                 嘿嘿,今天是蠻高興的啦,這個還要源於我們上課的進度啦,從開始學習到現在終於可以做一個簡單的小程序啦,之前在一個公司上班一個月啦,那時間真的看到好多的關鍵字就是討厭,沒有看到過,所以不認識啦,在學校可能也講過吧,但是那時間講的就是簡單地一下划過啦,今天我們學習啦自己寫SqlHelp這個類的,就是把昨天學習的ADO.net中好多的方法封裝成一個類啦,然后我們僅僅需要調用一下就可以啦,不用每次使用每次寫一個方法啦,因為我昨天還沒學習,所以就寫在今天啦,友友們也給我說啦,讓我封裝成一個類啦,那我就總結一下啦,嘿嘿。

           一.SqlHelp類的封裝

 static class SqlHelp
    {
        static string connection = "Data Source=.;Initial Catalog=Student;Integrated Security=True";
        public static int ExcuteNonQuery(string sql, params SqlParameter[] sp)
        {
            using (SqlConnection conn = new SqlConnection(connection))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.CommandText = sql;
                    cmd.Connection = conn;
                    cmd.Parameters.AddRange(sp);
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        public static int ExcuteScalre(string sql, params SqlParameter[] sp)
        {
            using (SqlConnection conn = new SqlConnection(connection))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(sp);
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        public static DataTable ExcuteDataTable(string sql, params SqlParameter[] sp)
        {
            using (SqlConnection conn = new SqlConnection(connection))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(sp);

                    DataTable dt = new DataTable();
                    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
                    {
                        adapter.Fill(dt);
                    }
                    return dt;
                }
            }
        }
        public static SqlDataReader ExcuteSqlDataReader(string sql, params SqlParameter[] sp)
        {
            SqlConnection conn = new SqlConnection(connection);
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.AddRange(sp);
            SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return reader;
        }
    }

 

                    二.熟練運用SqlHelp類

                   在熟悉使用SqlHelp這個類,下面我做啦一個小程序啦,就是圍繞調用SqlHelp類中的方法的熟練使用寫的,下面總結一下啦。

            1.建立了三個窗體,分別為Form1,Login登陸頁面,Register注冊頁面,當選中ListBox中的任意一項,點擊下方的按鈕就可以實現其功能,在這里,Register頁面實現啦兩個功能,一個是直接的注冊頁面,一個是修改頁面的功能,嘿嘿,窗體樣式如下:

             

                     2.實現其代碼如下:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string sql = "select * from  Register";
            DataTable dt = SqlHelp.ExcuteDataTable(sql);
            foreach (DataRow item in dt.Rows)
            {
                string format = string.Format("{0},{1},{2},{3},{4},{5},{6}\n\t", item[0], item[1], item[2], item[3], item[4], item[5], item[6]);
                this.listBox1.Items.Add(format);
            }
        }

        private void btndel_Click(object sender, EventArgs e)
        {
            int id =int.Parse(this.listBox1.SelectedItem.ToString().Substring(0,1));
            string sql = "delete from Register where id=@id";
            SqlParameter sp = new SqlParameter("@id",id);
            if (SqlHelp.ExcuteNonQuery(sql, sp) > 0)
            {
                MessageBox.Show("刪除成功");
            }
            else
            {
                MessageBox.Show("刪除失敗");
            }
        }

        private void butadd_Click(object sender, EventArgs e)
        {
            Register r = new Register();
            r.Show();
            this.Hide();
        }

        private void btnupd_Click(object sender, EventArgs e)
        {
            int id = int.Parse(this.listBox1.SelectedItem.ToString().Substring(0, 1));
            string sql = "select * from Register where id=@id";
            SqlParameter sp = new SqlParameter("@id",id);
            SqlDataReader reader = SqlHelp.ExcuteSqlDataReader(sql, sp);
            if (reader.Read())
            {
                string d = reader[0].ToString();
                string name = reader[1].ToString();
                string pwd = reader[2].ToString();
                string age = reader[3].ToString();
                string sex = reader[4].ToString();
                string address = reader[5].ToString();
                string phone = reader[6].ToString();

                Register r = new Register(d,name,pwd,age,sex,address,phone);
                r.Show();
                r.Text = "修改";
                r.Btnreg.Text = "更新";
                this.Hide();
            }
        }
    }
public partial class Register : Form
    {
        public Register()
        {
            InitializeComponent();
        }
        bool b = false;//默認是新增
        string id = string.Empty;
        public Register(string id, string username, string pwd, string sex, string address, string phone, string age)
        {
            InitializeComponent();
            b = true;

            this.txtUserName.Text = username;
            this.txtpwd.Text = pwd;
            this.txtphone.Text = phone;
            string birthday = this.dateTimePicker1.Text;
            this.txtaddress.Text = address;
            this.id = id;
            if (sex.ToLower().Equals("false"))
            {
                this.radioButton2.Checked = true;
            }
            else
            {
                this.radioButton1.Checked = true;
            }
            //int age = DateTime.Now.Year - DateTime.Parse(birthday).Year;
        }
        private void btnreg_Click(object sender, EventArgs e)
        {
            string username = this.txtUserName.Text;
            string pwd = this.txtpwd.Text;
            string address = this.txtaddress.Text;
            string birthday = this.dateTimePicker1.Text;
            string phone = this.txtphone.Text;
            bool sex = this.radioButton1.Checked ? true : false;
            int age = DateTime.Now.Year - DateTime.Parse(birthday).Year;  //通過輸入生日,計算出該年齡
            if (!b)
            {
                MD5 md5 = new MD5CryptoServiceProvider();   //創建MD5的加密對象
                byte[] bytes = Encoding.Default.GetBytes(pwd);//把要進行MD5加密的字符串轉換成字節數組
                byte[] bytess = md5.ComputeHash(bytes);
                pwd = BitConverter.ToString(bytess).Replace("-", "");

                if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(pwd) && !string.IsNullOrEmpty(birthday) && !string.IsNullOrEmpty(address) && !string.IsNullOrEmpty(phone))
                {
                    string sql = "insert into Register(UserName,Pwd,Age,Address,Phone,Sex)values(@username,@pwd,@age,@address,@phone,@sex)";
                    SqlParameter[] sp ={ 
                                 new  SqlParameter("@username",username),
                                 new  SqlParameter("@pwd",pwd),
                                 new  SqlParameter("@age",age),
                                 new  SqlParameter("@sex",sex),
                                 new  SqlParameter("@address",address),
                                 new  SqlParameter("@phone",phone),
                              };
                    if (SqlHelp.ExcuteNonQuery(sql, sp) > 0)
                    {
                        MessageBox.Show("注冊成功");
                    }
                    else
                    {
                        MessageBox.Show("注冊失敗");
                    }
                }
                else
                {
                    MessageBox.Show("信息不能為空");
                }
            }
            else
            {
                string sql = "update Register set UserName=@username,pwd=@pwd,age=@age,sex=@sex,address=@address,phone=@phone where id=@id";
                SqlParameter[] sp = {    new SqlParameter("@username", username), 
                                         new SqlParameter("@pwd", pwd),
                                         new SqlParameter("@age", age), 
                                         new SqlParameter("@sex", sex), 
                                         new SqlParameter("@address", address), 
                                         new SqlParameter("@phone", phone), 
                                         new SqlParameter("@id", id) };
                if (SqlHelp.ExcuteNonQuery(sql, sp) > 0)
                {
                    MessageBox.Show("更新成功");
                }
                else
                {
                    MessageBox.Show("更新失敗");
                }
            }
        }
    }
public partial class Login : Form
    {
        public Login()
        {
            InitializeComponent();
        }

        private void btnlog_Click(object sender, EventArgs e)
        {
            string name = this.txtname.Text.Trim();
            string pwd = this.textBox1.Text.Trim();

            MD5 md5 = new MD5CryptoServiceProvider();//創建MD5加密對象
            byte[] bytes = Encoding.Default.GetBytes(pwd);//把要進行MD5加密的字符串轉換成字節數組
            byte[] bytess = md5.ComputeHash(bytes);
            pwd = BitConverter.ToString(bytess).Replace("-","");

            string sql = "select count(*) from Register where UserName=@name and pwd=@pwd";
            SqlParameter[] sp={
                                  new  SqlParameter("@name",name),
                                  new  SqlParameter("@pwd",pwd)
                              };
            if (SqlHelp.ExcuteScalre(sql, sp) > 0)
            {
                MessageBox.Show("登陸成功");
            }
            else
            {
                MessageBox.Show("登錄失敗");
            }
        }
    }

 

                   嘿嘿,這個小程序就是這樣的,或許已經做過好久程序的友友會說,這樣的小程序也能說出來啊,但是我感覺我還是開始,每個人都會有一個開始,我這樣的小小激動還是會存在的的。突然想起啦今天上課時間老師問:“做程序感覺怎么樣”?我的第一反應就是不錯額,我感覺做出來啦程序就是很有成就感啊,雖然現在還談不上什么成果啦,但是我會努力的,之前我沒想一直在這個領域發展的,但是從我開始接觸程序,我發現我就是和它是好朋友啦,感覺做程序就是深深的吸引着我,所以我要努力學習,不論結果怎么樣,這個小的開始我不能落后啦,今天我可能遇到啦好多麻煩啦,博客園里面的友友都很熱情啦,還能幫我解決問題,嘿嘿,灰常的感謝啦,在這里,我會每天總結自己學習的,只希望我會努力堅持學好.Net語言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM