C#在窗体程序上编写控制台程序实现:添加、删除、修改用户名和密码

麻烦给一段详细一点的代码,我用的是access的数据库,在窗体程序上可以修改数据库

根据上一个示例,改下Form2窗体的代码,读取数据填充datagridview后就行删除,添加,修改操作,示例如下,注意要给datagridview添加2个DataGridViewLinkColumn,并且设置UseColumnTextForLinkValue为true

img

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;

namespace WindowsFormsApp3
{
    public partial class Form2 : Form
    {
        public Form1 loginFrm { get; set; }
        public int id { get; set; }
        public string name { get; set; }
        public Form2()
        {
            InitializeComponent();
        }
        OleDbConnection conn;
        DataTable dt;
        private void Form2_Load(object sender, EventArgs e)
        {
            conn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=data.mdb");
            conn.Open();
            dt = new DataTable();
            new OleDbDataAdapter("select * from  [users]", conn).Fill(dt);

            dataGridView1.DataSource = dt;
            dataGridView1.Columns[2].HeaderText = "ID";
            dataGridView1.Columns[3].HeaderText = "用户名";
            dataGridView1.Columns[4].HeaderText = "密码";
        }

        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            conn.Close();
            loginFrm.Show();
        }

        private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            e.Cancel = e.ColumnIndex == 2;//不允许编辑ID列
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            var col = e.ColumnIndex;
            if (col == 0)
            { //删除
                if (MessageBox.Show("确认删除?!", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    if (dataGridView1.Rows.Count < 2) { MessageBox.Show("不能删除所有用户哦~~"); return; }
                    var id = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
                    if (id != "0")
                    {//新增未保存的记录,不需要操作数据库
                        var sql = "delete  from  [users] where id=" + id;
                        new OleDbCommand(sql, conn).ExecuteNonQuery();
                    }
                    dataGridView1.Rows.RemoveAt(e.RowIndex);
                }
            }
            else if (col == 1)
            { //更新
                var id = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
                var un = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString().Replace("'", "''");
                var pwd = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString().Replace("'", "''");
                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = conn;
                cmd.CommandText = "select count(1) from [users] where un='" + un + "' " + (id == "0" ? "" : " and id!=" + id);
                //用户名唯一判断
                if ((int)cmd.ExecuteScalar() > 0) { MessageBox.Show("用户名“"+ un + "”已经存在,请确认!"); return; }


                if (id == "0")
                {//新增记录保存到数据库
                    
                    cmd.CommandText = "insert into [users](un,pwd) values('" + un + "' ,'" + pwd + "')";
                    cmd.ExecuteNonQuery();
                    //获取新增记录id更新datagridview
                    cmd.CommandText = "select id from [users] where un='" + un + "'";
                    dataGridView1.Rows[e.RowIndex].Cells[2].Value = cmd.ExecuteScalar();
                }
                else
                {
                    cmd.CommandText = "update [users] set un='" + un + "' ,pwd='" + pwd + "' where id=" + id;
                    cmd.ExecuteNonQuery();
                }
                MessageBox.Show("更新成功~~");
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            dt.Rows.Add(0, "", "");
        }
    }
}

有帮助麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~