读书人

DataGridView 与数据库同步更新有关问

发布时间: 2011-12-18 22:54:38 作者: rapoo

DataGridView 与数据库同步更新问题!(100分)
研究好一段时间!网上的方法也搜了许多!帮修改下下面的这个函数!
去掉try ...cath...会报一个错误如下:
对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。

C# code
 public static bool updateGridView(DataGridView dgv)        {            OleDbConnection con = GreatConn();            OleDbDataAdapter oda = new OleDbDataAdapter("select * from employee",con );            try            {                if (oda != null)                {                    DataTable dt = new DataTable();                    oda.Fill(dt);                    dgv.DataSource = dt;                }                if (oda != null)                {                    OleDbCommandBuilder cmdbuilder = new OleDbCommandBuilder(oda);                    OleDbCommand cmd = cmdbuilder.GetUpdateCommand();                    oda.UpdateCommand = cmd;                    oda.Update((DataTable)dgv.DataSource);                }                return true;            }            catch            {                return false;            }        }




[解决办法]
给employee表添加一列主键或设置一列unique列!
[解决办法]
if (oda != null)
{
DataTable dt = new DataTable();
oda.Fill(dt);
dgv.DataSource = dt;
}
if (oda != null)
{
OleDbCommandBuilder cmdbuilder = new OleDbCommandBuilder(oda);
OleDbCommand cmd = cmdbuilder.GetUpdateCommand();
oda.UpdateCommand = cmd;
oda.Update((DataTable)dgv.DataSource);

}
两个条件判断怎么都是一样的?
[解决办法]
楼主应把SQL语句的*去掉,把列名列出来,或者在更新命令中指定列名和参数,不然就会出错。

当然,一个表最好有主键,否则,将把所有的字段均作为更新的WHERE条件,此时,若有一个值是空值,很可能会引发
异常

读书人网 >C#

热点推荐