weixin_46427287 2021-10-27 17:04 采纳率: 100%
浏览 272
已结题

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

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

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-10-27 17:48
    关注

    根据上一个示例,改下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, "", "");
            }
        }
    }
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月28日
  • 已采纳回答 10月28日
  • 修改了问题 10月27日
  • 创建了问题 10月27日

悬赏问题

  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译