C#:直接在DataGridView控件中修改数据
来源:互联网 发布:Minecraft mac光影 编辑:程序博客网 时间:2024/05/17 16:11
在DataGridView控件中修改数据,主要用到DataTable的ImportRow方法和DataAdapter对象的Update方法。实现的过程是通过DataTable的ImportRow方法将更改后的数据复制到一个DataTable中,然后通过DataAdapter对象的Update方法,将DataTable中的数据更新到数据库中。
ImportRow方法用于将DataRow复制到DataTable中,且保留任何属性设置以及初始值和当前值。
语法如下:
Public void ImportRow( DataRow row )
其中,row是要导入的DataRow。
默认情况下,用户可以通过在当前的DataGridView文本框单元格中输入或按F2键来编辑该单元格的内容。在控件单元格中编辑内容的前提是DataGridView控件已启用以及单元格、行、列和控件的ReadOnly属性都设置为false。ReadOnly属性用于指示用户是否可以编辑DataGridView控件的单元格。
下面演示如何在DataGridView控件中直接修改数据,然后进行批量更新。
public partial class Form1 : Form{
public Form1(){
InitializeComponent();
}
SqlConnection sqlCon; //声明一个SqlConnection变量
SqlDataAdapter adapter; //声明一个SqlDataAdapter变量
//--------------连接数据库,绑定DataGridView控件-----------------
private voidbutton1_Click(object sender, EventArgs e){
//实例化SqlConnection变量conn,连接数据库
sqlCon =new SqlConnection("server=.;database=db_16;uid=sa;pwd=");
//实例化SqlDataAdapter对象
SqlDataAdapter sda = newSqlDataAdapter("select* from tb_emp", sqlCon);
//实例化DataSet对象
DataSet ds = new DataSet();
//使用SqlDataAdapter对象的Fill方法填充DataSet
sda.Fill(ds);
//设置dataGridView1控件的数据源
dataGridView1.DataSource = ds.Tables[0];
//禁止显示行标题
dataGridView1.RowHeadersVisible = false;
//使用for循环设置控件的列宽
for (int i = 0; i< dataGridView1.ColumnCount;i++ ){
dataGridView1.Columns[i].Width = 84;
}
//禁用按钮
button1.Enabled = false;
//将控件设置为只读
dataGridView1.Columns[0].ReadOnly = true;
}
//-----------------建立一个DataTable的方法-----------------------
private DataTabledbconn(string strSql){
sqlCon.Open(); //打开连接
//实例化SqlDataAdapter对象
this.adapter = new SqlDataAdapter(strSql, sqlCon);
//实例化DataTable对象
DataTable dtSelect = newDataTable();
//使用Fill方法填充DataTable对象
int rnt = this.adapter.Fill(dtSelect);
//关闭连接
sqlCon.Close();
//返回DataTable对象
returndtSelect;
}
//-------------更新数据库----------------------------
private BooleandbUpdate(){
//声明SQL语句
string strSql = "select* from tb_emp";
//实例化DataTable
DataTable dtUpdate = newDataTable();
//创建一个DataTable
dtUpdate= this.dbconn(strSql);
//调用Clear方法
dtUpdate.Rows.Clear();
//实例化DataTable
DataTable dtShow = newDataTable();
dtShow =(DataTable)this.dataGridView1.DataSource;
//使用for循环遍历行
for (int i = 0; i< dtShow.Rows.Count; i++){
//使用ImportRow方法复制dtShow中的值
dtUpdate.ImportRow(dtShow.Rows[i]);
}
try{
this.sqlCon.Open(); //打开连接
SqlCommandBuilder CommandBuiler; //声明SqlCommandBuilder变量
CommandBuiler = new SqlCommandBuilder(this.adapter);
this.adapter.Update(dtUpdate); //调用Update方法更新数据库
this.sqlCon.Close(); //关闭连接
}
catch (Exceptionex){
MessageBox.Show(ex.Message.ToString());
return false;
}
//提交更改
dtUpdate.AcceptChanges();
return true;
}
//--------------------修改DataGridView控件中选中单元格的值-------------------
private voidbutton2_Click(object sender, EventArgs e){
if (dbUpdate())
{
MessageBox.Show("修改成功!");
}
}
}
- C#:直接在DataGridView控件中修改数据
- DataGridView控件选中单元格、直接在控件中修改信息
- 在 DataGridView 控件中修改数据
- C#:在DataGridView控件中显示数据
- 直接在DataGridView中添加修改数据的问题
- c# winFrom中 dataGridView控件 在列表内直接编辑数据,然后保存到数据库
- C#:DataGridView控件(数据控件)
- C#——小编浅谈如何在DataGridView控件中验证数据输入
- DataGridView直接修改数据并且更新数据库
- C#中对winform的控件datagridview直接进行编辑,修改,删除操作注意的地方
- 如何在C#中利用DataGridView控件编辑数据
- 如何在C#中利用DataGridView控件编辑数据
- C#:禁止在DataGridView控件中添加和删除行
- ajax实现在直接在表格中修改数据
- 在数据字典中直接修改Oracle表列名
- 在数据字典中直接修改Oracle表列名
- sql server如何直接在表中修改数据
- c# 在datagridview修改添加数据
- nfc开发
- 正则表达式匹配
- hdu 4405 概率dp 2012年金华亚洲网络赛--虽然水,但是是自己独立做的第一道概率dp
- 服务器日常巡检的linux命令
- android面试题库
- C#:直接在DataGridView控件中修改数据
- linux内核头文件 cdev.h 解析
- HashMap与Hashtable的区别
- PA模块报错-实际返回的行数超出请求的行数(分析标准FORM报错解决思路)
- hdu1874
- ×【leetcode】Binary Tree Maximum Path Sum
- hdu 1073 Online Judge
- 关于C++ const 的全面总结
- 关于构造函数