首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

【疑问】关于绑定到DataGridView的DataTable的有关问题

2013-02-25 
【疑问】关于绑定到DataGridView的DataTable的问题利用C#在做应用时偶然间发现的关于DataGridView的问题。下

【疑问】关于绑定到DataGridView的DataTable的问题
利用C#在做应用时偶然间发现的关于DataGridView的问题。下面是一个Demo。
窗口界面如图:
【疑问】关于绑定到DataGridView的DataTable的有关问题
后台代码如下:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        SqlDataAdapter sqlDA;
        DataTable dt;
        public Form1()
        {
            InitializeComponent();
        }

        private void btnModify_Click(object sender, EventArgs e)
        {
            dgv.CurrentCell.Value = "123";
            DataRowView drv = (DataRowView)dgv.CurrentRow.DataBoundItem;
            MessageBox.Show(drv.Row.RowState.ToString());
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string strConn = "Data Source=192.168.1.110;Initial Catalog=GD-Pipe;Persist Security Info=True;User ID=sa;Password=123";
            sqlDA = new SqlDataAdapter("SELECT * FROM ModelType", new SqlConnection(strConn));
            SqlCommandBuilder sqlCB = new SqlCommandBuilder(sqlDA);
            dt = new DataTable();
            sqlDA.Fill(dt);

            dgv.DataSource = dt;
        }
    }
}

点击“修改”按钮后,DataGridView和绑定在上面的DataTable中的所对应的值都改变了,可是DataTable中的RowState依然是Unchanged,这是怎么回事呢?
环境:VS2010,SQL2008
DataGridView
[解决办法]
可能与这句有关SqlCommandBuilder sqlCB = new SqlCommandBuilder(sqlDA);

我这里测试了显示的是Modify

我是new一个DataTable,添加列和行,然后执行dt.AcceptChanges()。单击按钮后修改的代码跟你完全一样,弹出的是Modify。
[解决办法]
datagridview貌似要回车移动到下一行才算提交这一行吧。提交之后才会改变状态,
你这还是属于还在编辑中吧。

热点排行