麻烦给一段详细一点的代码,我用的是access的数据库,在窗体程序上可以修改数据库
根据上一个示例,改下Form2窗体的代码,读取数据填充datagridview后就行删除,添加,修改操作,示例如下,注意要给datagridview添加2个DataGridViewLinkColumn,并且设置UseColumnTextForLinkValue为true
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, "", "");
}
}
}
有帮助麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~