首页 新闻 会员 周边

winform的datagridview表内编辑数据问题

0
悬赏园豆:5 [已解决问题] 解决于 2014-08-28 10:52

winform的datagrid表内编辑数据问题
是直接在表内修改,代码参考这里。
http://blog.csdn.net/jjjjj102310253/article/details/3857834

  1. public partial class Form1 : Form  
  2.     {  
  3.         private DataTable DT = new DataTable();  
  4.        private SqlDataAdapter SDA = new SqlDataAdapter();  
  5.   
  6.         public Form1()  
  7.         {  
  8.              InitializeComponent();  
  9.          }  
  10.   
  11.         private void Form1_Load(object sender, EventArgs e)  
  12.         {  
  13.   
  14.              SqlConnection conn = new SqlConnection("server=127.0.0.1;database=pubs;uid=sa");  
  15.              SqlCommand SCD = new SqlCommand("select * from tables", conn);  
  16.              SDA.SelectCommand = SCD;  
  17.              SDA.Fill(DT);  
  18.              dataGridView1.DataSource = DT;  
  19.          }  
  20.  
  21.  
  22. #region   使用Update更新数据库  
  23.         private void button_save_Click(object sender, EventArgs e)  
  24.         {  
  25.             try  
  26.             {  
  27.                  SqlCommandBuilder SCB = new SqlCommandBuilder(SDA);                  
  28.                  SDA.Update(DT);  
  29.              }  
  30.             catch (System.Exception ex)  
  31.             {  
  32.                  MessageBox.Show(ex.ToString());  
  33.                 return;  
  34.              }  
  35.              MessageBox.Show("更新成功!");  
  36.          }  
  37. #endregion  

问题在于我表内的一些数据是计算后自动赋值的,在保存时不会保存到数据库。至少需要双击一下表内单元格(哪怕不编辑)才能成功修改数据,保存到数据库。
请问这是何解?

以下是我用js的动态解析替换选中行的某一个格的值,和主题不打相关

object ret = Microsoft.JScript.Eval.JScriptEvaluate(s, Microsoft.JScript.Vsa.VsaEngine.CreateEngine());
dataGridView1.SelectedRows[0].Cells[字段中文名称].Value = ret;

Cherbim的主页 Cherbim | 菜鸟二级 | 园豆:323
提问于:2014-07-10 11:24
< >
分享
最佳答案
1

因为你做了绑定:dataGridView1.DataSource = DT;

而保存时使用的是绑定的源:SDA.Update(DT); 

当 dataGirdView 没有结束编辑状态时,单元格中的值是不会更新到基础数据集合的。

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2014-07-10 16:48
其他回答(6)
0

在valuechange事件里面保存到数据库

刘宏玺 | 园豆:14020 (专家六级) | 2014-07-10 11:39

不关什么事件的问题,是我要点中单元格然后再点击触发那个事件才能保存数据到数据库。

支持(0) 反对(0) Cherbim | 园豆:323 (菜鸟二级) | 2014-07-10 13:25
0

为什么我看不懂你的问题,连你的那篇大作都看不懂,难道IT界的发展真是日新月异了?

为什么在Winform里面居然出现了Jscript这么高大上的东东?

顺便说一下,你在麦当劳吃KFC炸鸡翅,不怕被服务员赶出去吗?

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-07-10 11:40

动态解析表达式,替换字符串计算结果的。

支持(0) 反对(0) Cherbim | 园豆:323 (菜鸟二级) | 2014-07-10 13:22
0

看了半天,没看懂…

Firen | 园豆:5385 (大侠五级) | 2014-07-10 12:17
0

我也表示不明白

叶帅辉 | 园豆:277 (菜鸟二级) | 2014-07-10 13:39
0

初步判断,觉得你的DataTable DT 没有重新赋值

越老越菜 | 园豆:284 (菜鸟二级) | 2014-07-10 14:52
0

是的,没有结束编辑状态。

forhells | 园豆:724 (小虾三级) | 2014-07-17 21:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册