C# WinForm 实现增删改查等功能(Access版) 系列之二-增加

来源:互联网 发布:关家垴战斗 知乎 编辑:程序博客网 时间:2024/06/06 03:49

增加一条记录模块设计与实现

设计:点击增加按钮弹出一个窗体,在窗体的文本框中填充数据,点击保存按钮,当前添加数据窗体自动关闭,同时刷新主窗体,更新并显示数据。

实现:需要在增加按钮事件中传递一个主窗体的指针。

/// <summary>

        /// 增加

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void 增加ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            ResumeAddOrUpdate resumeAdd = new ResumeAddOrUpdate(this);

            resumeAdd.SaveOrUpdate("Save");    //增加操作

            resumeAdd.Width = this.Width;   //设置宽度,高度

            resumeAdd.Height = this.Height;

            resumeAdd.Top = this.Top;

            resumeAdd.Left = this.Left;

            resumeAdd.StartPosition = FormStartPosition.CenterScreen;

            resumeAdd.BackColor = Color.White;

            resumeAdd.Show();

        }

ResumeAddOrUpdate中:

private ResumeTest resumeTest;    //定义一个父窗体

/// <summary>

        /// 添加时的操作

        /// </summary>

        /// <param name="_resumeTest"></param>

        public ResumeAddOrUpdate(ResumeTest _resumeTest)   //这里需要从父窗体中传递一个this指针

        {

            InitializeComponent();

            this.resumeTest = _resumeTest;

        }

private void ResumeAdd_Load(object sender, EventArgs e)

        {

            txtSelfCommand.Multiline = true//设置成多行多列显示

            picPerson.SizeMode = PictureBoxSizeMode.StretchImage;    //图片自适应picturebox大小

 // lblImage.Text = "0";//初始化是否更新图片,为空时不更新图片,不为空时则更新图片

        }

 

       /// <summary>

        /// 增加操作

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void btnSave_Click(object sender, EventArgs e)

        {

…………

//手动代码保存数据至数据库

            OleDbConnection conn = GetConnection();

            string sqlText = "insert into MResume(姓名,性别,出生日期,工作年限,证件类型,证件号,居住地,Email,手机号码,家庭电话,自我评价,图片) values(@name,@sex,@datetimes,@years,@cardStyle,@cardNumber,@address,@email,@phoneNumber,@homeNumber,@selftCommand,@timeStamp)";

          // OleDbTransaction transaction = null;

            OleDbCommand cmd = new OleDbCommand(sqlText, conn);

           //transaction = conn.BeginTransaction();

           // cmd.Transaction = transaction;

            cmd.Parameters.AddWithValue("@name", name);

            cmd.Parameters.AddWithValue("@sex", sex);

            cmd.Parameters.AddWithValue("@datetimes", datetimes);

            cmd.Parameters.AddWithValue("@years", years);

            cmd.Parameters.AddWithValue("@cardStyle", cardStyle);

            cmd.Parameters.AddWithValue("@cardNumber", cardNumber);

            cmd.Parameters.AddWithValue("@address", address);

            cmd.Parameters.AddWithValue("@email", email);

            cmd.Parameters.AddWithValue("@phoneNumber", phoneNumber);

            cmd.Parameters.AddWithValue("@homeNumber", homeNumber);

            cmd.Parameters.AddWithValue("@selftCommand", selftCommand);//timeStamp

           cmd.Parameters.AddWithValue("@timeStamp", lblImage.Text);

            try

            {

                conn.Open();

                int i = cmd.ExecuteNonQuery();

             // transaction.Commit();

                if (i > 0)

                {

                    MessageBox.Show("添加成功!","提示");

                  // this.resumeTest.Refresh();

                    this.resumeTest.RefreshDataGridView(sender,e);//刷新窗体

                    this.Close();

                }

               /*DataTable dt = new DataTable();

                OleDbDataAdapter oda = new OleDbDataAdapter(sqlText, conn);

                oda.Fill(dt);

                dataGridView1.DataSource = dt;

                */

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

            finally

            {

                conn.Close();

            }

        }

/// <summary>

        /// 检查是否有已经存在相同的名称

        /// true 已经存在相同用户名,不能添加数据

        /// false 不存在相同的用户名,可以添加

        /// </summary>

        /// <param name="name"></param>

        /// <returns></returns>

        public bool CheckTheSameName(string name)

        {

            bool result = false;   //

            int mcount = 0;

            OleDbConnection conn = GetConnection();

            string sqlText = "select count(*) as 结果 from MResume where 姓名=@name";

            OleDbCommand cmd = new OleDbCommand(sqlText, conn);

            cmd.Parameters.AddWithValue("@name", name);

            try

            {

                conn.Open();

               // int i = cmd.ExecuteNonQuery();

                OleDbDataReader datareader = cmd.ExecuteReader();

                if (datareader.Read())

                {

                    mcount = int.Parse(datareader["结果"].ToString());

                }

                if (mcount > 0)

                {

                  // MessageBox.Show("已经存在相同用户名!", "提示");

                    result = true;

                }

                else

                {

                   // MessageBox.Show("不存在相同用户名!", "提示");

                    result = false;

                }

                /*DataTable dt = new DataTable();

                 OleDbDataAdapter oda = new OleDbDataAdapter(sqlText, conn);

                 oda.Fill(dt);

                 dataGridView1.DataSource = dt;

                 */

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

                result = true;

            }

            finally

            {

                conn.Close();

            }

            return result;

        }

原创粉丝点击