datagridview一行值更新了.怎么把这一行更新值更新到数据库里面 datagridview一行值更新了.怎么把这一行更新值更新到数据库里面.那位高手详细说一下. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在datagridview中记录一列数据库的id,数据库id列设置为隐藏的,一行值更新了就会知道改行值对应数据库的哪条记录了。 是呀.我一行有很多字段.我要怎么传进去才是重点我不需要记录ID.条件我也会指定ID了..难道我的UPDATA的字符串必须要把所有字段指定吗?还有用哪个事件提交上去呢.dtatgridview里面我看了所有的事件好像都不行一样. 好像有个RowChange事件吧,你找找 没有RowChange这个事件CellValueChanged这个一加载窗体就运行了.而我另我一个问题是怎么一行更新到数据库里面. 貌似是RowEditing事件吧 各位大神 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { string sql = "...."; }或者你写一个更新方法 直接用datagridview.datasource=“更新方法” 直接搞定了 通过事件触发,例如,DataGridView_CellValueChanged的时候,提示是否需要保存数据,如果需要,就commit,否则,roll back 我的思路是,在列表中加按钮列,然后加事件private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 3 && e.RowIndex >= 0) { MessageBox.Show(this.dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString()); } }不知道还有没有好方法,呵呵 这个问题我也遇到过,绑定数据的时候绑定一个关键字DataKeyNames,然后在后面加一个控件就可以获得当前值了.在本页更新,不明白的话,可以把代码贴出来 没有这个RowEditing事件.难道要手写这个事件吗?我在事件窗口里面没有看到这个 晕,有那么难吗,实在不行你就像11楼说的,加一列模板列,里面放上linkbutton 或者别的什么 随你便之后再click事件里写“你要做什么事 是更新还是添加 还是删除 也随便你 ”这样还不OK 那你就先去学习下datagridview教程吧 看看他到底是个什么东西 貌似datagridview是VS08里的,我VS10里没有了。不过都差不多的。。你不行就按个试吧 我就是要点击右边红色边框后,左边的填充进去的数据1添加到数据库里面11楼的方法,我没有看明白我在dataGridView1_CellValueChanged事件里面有这样写,可这样写不行.我需要的是整行.而这只是指定的单元格修改更新.整行更新我要需要每个字段要指定吗?如果指定要在哪个事件里面.[code=C#] private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { string strUP = string.Format(@"update Scheduling SET {0}={1} where Numbers={2}", dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText, dataGridView1.SelectedCells[0].Value.ToString(), dataGridView1.CurrentRow.Cells[0].Value.ToString()); SystemGlobalVar.DatabaseMethods.getCommand(strUP); }[/code] http://hi.csdn.net/attachment/201104/29/433335_1304059275D0U5.png图标地址. 8楼说的是GridView1,是asp.net里的控件吧,楼主说的是WINFORM里的控件 一行就一个id,id确定了,哪一行的记录就知道了呀,修改玩在从新绑定下就ok了 晕啊,整错了。以为是asp.net里的呢。。winform里的 只能是foreach 遍历整行,然后e.row.cell[某一列的值]接着执行 这个知道.可我字段哪么多.难道我一定要写个SQL字符串来修改? 谢谢 ,这个不是我想要的.这样太那个了.我就是想输完值就立即更新.还要用户点击btn事件不好.. 那你也要有一个用来辨识出是哪一行的列啊,哪怕是隐藏的,在你鼠标点击的时候自动获取当前行的标识列(不能重复) 然后sql语句里where 标识列= XXX 来更新 就好了啊 试试这个呢?private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { if (this.dataGridView1.SelectedRows[0].Cells[e.ColumnIndex].Value != null) { MessageBox.Show(this.dataGridView1.SelectedRows[0].Cells[e.ColumnIndex].Value.ToString()); } } } 有谁见过update * set Table where XX=XX 这样的语句的???我是没有见过,更新当然要指定字段名了啊 例如: departmentId= this.txt_departmentId.text.trim();有多少写多少。。 楼主的意思是不是改一个值就修改一下数据库啊?update语名必须只定列名,有多少写多少 就是RowEditing这个事件,除非你用的不是GridView 兄弟,他用的的确不是GridView 是winform里的datagridview 哈哈,datagridview和gridview区分不开吗?楼主你要是改一个值一更新,这个思路不太好,操作数据库也太频繁了吧 我是要修改一行中任意单元格数据.整行修改还有如果我要是更新语句,每个字段指定值.咋指定呢 string strSql = string.Format(@" UPDATE SchedulingSET Day1 ={0}, Day2 ={1}, Day3 ={2}, Day4 ={3}, Day5 ={4}, Day6 ={5}, Day7 ={6}, Day8 ={7}, Day9 ={8}, Day10 ={9}, Day11 ={10}, Day12 ={11}, Day13 ={12}, Day14 ={13}, Day15 ={14}, Day16 ={15}, Day17 ={16}, Day18 ={17}, Day19 ={18}, Day20 ={19}, Day21 ={20}, Day22 ={21}, Day23 ={22}, Day24 ={23}, Day25 ={24}, Day26 ={25}, Day27 ={26}, Day28 ={27}, Day29 ={28}, Day30 ={29}, Day31 ={30}",dataGridView1.CurrentRow.Cells[0].Value.ToString()dataGridView1.CurrentRow.Cells[1].Value.ToString()dataGridView1.CurrentRow.Cells[2].Value.ToString()dataGridView1.CurrentRow.Cells[3].Value.ToString()dataGridView1.CurrentRow.Cells[4].Value.ToString()dataGridView1.CurrentRow.Cells[4].Value.ToString().....dataGridView1.CurrentRow.Cells[30].Value.ToString()这样改着不现实吧.感觉也是错的.... 是的,这sql语句不长,就是麻烦点而已。没什么我貌似看懂了。莫非楼主弄的是更新时间的东东 我自己解决了在listView填充时同时进行更新...多谢各位了. 楼主,贴下代码吧,我也有同样的需求,或者发个邮件[email protected] datagridview 行索引 C#怎么获得当前屏幕光标的位置,然后在光标的位置上输入想输入数据 比较日期的问题 帮帮忙 如何将object绑定到DetailsView控件上呢? 有道难题,2010 ,编程比赛,下载不到poj平台,如何比赛 C# excel编程 关于DataGridView 请教一个正则表达式的写法 用c#如何编程实现获得本机的IE的◎代理服务器◎设置? 想做一个通用应用程序缓存的方法,但出现是“类型”,但此处被当做“变量”来使用错误,请教大侠们帮帮看看 请问,如何生成定期事件
没有RowChange这个事件
CellValueChanged
这个一加载窗体就运行了.而我另我一个问题是怎么一行更新到数据库里面.
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
string sql = "...."; }或者你写一个更新方法 直接用datagridview.datasource=“更新方法” 直接搞定了
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 3 && e.RowIndex >= 0)
{
MessageBox.Show(this.dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
}
}不知道还有没有好方法,呵呵
没有这个RowEditing事件.难道要手写这个事件吗?我在事件窗口里面没有看到这个
之后再click事件里写“你要做什么事 是更新还是添加 还是删除 也随便你 ”这样还不OK 那你就先去学习下datagridview教程吧 看看他到底是个什么东西
貌似datagridview是VS08里的,我VS10里没有了。
不过都差不多的。。你不行就按个试吧
我就是要点击右边红色边框后,左边的填充进去的数据1添加到数据库里面
11楼的方法,我没有看明白
我在dataGridView1_CellValueChanged事件里面有这样写,可这样写不行.我需要的是整行.而这只是指定的单元格修改更新.整行更新我要需要每个字段要指定吗?如果指定要在哪个事件里面.[code=C#]
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{ string strUP = string.Format(@"update Scheduling SET {0}={1} where Numbers={2}", dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText, dataGridView1.SelectedCells[0].Value.ToString(), dataGridView1.CurrentRow.Cells[0].Value.ToString());
SystemGlobalVar.DatabaseMethods.getCommand(strUP);
}
[/code]
图标地址.
接着执行
{
if (e.RowIndex >= 0)
{
if (this.dataGridView1.SelectedRows[0].Cells[e.ColumnIndex].Value != null)
{
MessageBox.Show(this.dataGridView1.SelectedRows[0].Cells[e.ColumnIndex].Value.ToString());
}
}
}
departmentId= this.txt_departmentId.text.trim();有多少写多少。。
兄弟,他用的的确不是GridView 是winform里的datagridview
SET Day1 ={0}, Day2 ={1}, Day3 ={2}, Day4 ={3}, Day5 ={4}, Day6 ={5}, Day7 ={6}, Day8 ={7}, Day9 ={8}, Day10 ={9}, Day11 ={10}, Day12 ={11}, Day13 ={12}, Day14 ={13}, Day15 ={14}, Day16 ={15}, Day17 ={16}, Day18 ={17}, Day19 ={18}, Day20 ={19}, Day21 ={20}, Day22 ={21}, Day23 ={22}, Day24 ={23}, Day25 ={24}, Day26 ={25}, Day27 ={26}, Day28 ={27}, Day29 ={28}, Day30 ={29}, Day31 ={30}",
dataGridView1.CurrentRow.Cells[0].Value.ToString()
dataGridView1.CurrentRow.Cells[1].Value.ToString()
dataGridView1.CurrentRow.Cells[2].Value.ToString()
dataGridView1.CurrentRow.Cells[3].Value.ToString()
dataGridView1.CurrentRow.Cells[4].Value.ToString()
dataGridView1.CurrentRow.Cells[4].Value.ToString()
.....
dataGridView1.CurrentRow.Cells[30].Value.ToString()这样改着不现实吧.感觉也是错的....
在listView填充时同时进行更新...多谢各位了.
[email protected]