实现思路:
实现数据库和datagridview数据连接
实现修改datagridview触发事件,获取更新数据存放在变量里
通过变量的变化实现数据库更新功能。
功能代码:
using System;
using SystemCollectionsGeneric;
using SystemComponentModel;
using SystemData;
using SystemDrawing;
using SystemText;
using SystemWindowsForms;
using SystemCollections;
using SystemDataSqlClient;
namespace Quanxian
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private int job_id;
private string job_desc;
private int min_lvl;
private int max_lvl;
private void Form2_Load(object sender, EventArgs e)
{
binddatagridview();
}
/// <summary>
/// 绑定Datagridview的方法
/// </summary>
private void binddatagridview()
{
SqlConnection sqlcon = new SqlConnection("server=;uid=sa;pwd=;database=pubs");
SqlDataAdapter sqldap = new SqlDataAdapter("select from jobs", sqlcon);
DataSet ds = new DataSet();
sqldapFill(ds);
thisdataGridView1DataSource = dsTables[0];
}
/// <summary>
/// 编辑单元格后触发
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1RowsCount > 0)
{
job_id = intParse (thisdataGridView1Rows[eRowIndex]Cells[0]ValueToString());
job_desc = thisdataGridView1Rows[eRowIndex]Cells[1]ValueToString();
min_lvl = intParse(thisdataGridView1Rows[eRowIndex]Cells[2]ValueToString());
max_lvl = intParse(thisdataGridView1Rows[eRowIndex]Cells[3]ValueToString());
}
}
/// <summary>
/// 修改
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection("server=;uid=sa;pwd=;database=pubs");
string str = "update jobs set job_desc='" + job_desc + "',min_lvl=" + min_lvl + ",max_lvl=" + max_lvl + " where job_id=" + job_id + "";
SqlCommand sqlcom = new SqlCommand(str,sqlcon);
try
{
sqlconOpen();
if (sqlcomExecuteNonQuery() > 0)
MessageBoxShow("保存成功");
else
MessageBoxShow("保存失败!");
}
catch
{
//异常
}
finally
{ sqlconClose();}
}
/// <summary>
/// 刷新
/// </summary>
private void button2_Click(object sender, EventArgs e)
{
binddatagridview();
}
}
}
如果是sqlserver数据库,其实对于某列上不存在不让修改的说法,sqlserver数据库数据控制原理是角色控制,也就是说我们对于某一个角色去下定义,让隶属于这个角色的用户不能够更新数据。或者在某个角色的基础上不分配或是回收对某一列的权限!如果是这种情况,用一个能修改的角度登陆才行。
还有另一种就是所谓的触发器,一旦发现你修改,立即返回原数据,这样你也是永远修改不了的!这时你要找到那个触发器,将触发器删除后再进行修改,然后加回触发器即可!
但这两种情况都是对某一列下的定义(我们称为锁定粒度为列)不可能是某一个单元格!
如果你是站在erp管理的基础上不让你修改那是十分正常的!
在企业管理器中使用图形方式(如二楼给的图)还是语句,则没有任何的区别!
以上就是关于c#datagridview怎么直接修改数据库数据,最好给个事例全部的内容,包括:c#datagridview怎么直接修改数据库数据,最好给个事例、在数据库 附加的数据文件 修改表里的某个用户提示无法编辑单元 有什么办法可以修改这个单元格吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)