C# 用DATASET读取数据库后保存问题

我用一下方法读取数据库
myDataSet = new DataSet();
myDataAdapter = new OleDbDataAdapter("
"SELECT * FROM 分类 WHERE 编号=1
", conn);
然后将dataset绑定到网格控件。
在网格控件里面修改或添加内容后不能保存代码如下:
myCommandBuilder = new System.Data.OleDb.OleDbCommandBuilder(myDataAdapter);
myDataAdapter.DeleteCommand = myCommandBuilder.GetDeleteCommand();
myDataAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
myDataAdapter.InsertCommand = myCommandBuilder.GetInsertCommand();
try
{
// 保存到数据库
myDataAdapter.Update(myDataSet.Tables["分类"]);
}
catch (Exception err)
{

}

myDataAdapter.Fill(myDataSet, "分类");

上面的代码中如果不用用条件查询可以正常保存到数据库。。。
问题解决了,代码没有问题,只是我在查询数据库后没有重新绑定网格控件,照成的不能更新到数据库。。。。感谢大家的回复

这个很简单,原因你并不了解UpdateCommand中的生成了什么SQL
myDataAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
MessageBox.Show(myDataAdapter.UpdateCommand); //加这一行,看显示的SQL,然后就知道为什么有问题了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-06
学习中
第2个回答  2012-07-07
关注
第3个回答  2012-07-10
看不到语句,不知道要做什么
表意不明确

C# 用DATASET读取数据库后保存问题
这个很简单,原因你并不了解UpdateCommand中的生成了什么SQL myDataAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();MessageBox.Show(myDataAdapter.UpdateCommand); \/\/加这一行,看显示的SQL,然后就知道为什么有问题了。

C#如何把数据读到内存中,然后对内存中的数据进行操作
你可以创建dataset 然后对他进行增删查该 每一次的增加,删除这类的操作都要重新创建一个dataset,dataset数据集就是临时的数据库,也就是操作缓存中的数据,我最经也是用到了个技术

c#中关于Dataset,datarow的数据访问问题
string x = row.ToString();这里调用的是DataRow.ToString,当然返回system.Data.DataRow,如果DataTable里只有一列,可以用string x = row[0].ToString();DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,...

C#怎么取出数据库的多列数据,用数组保存起来
把从数据库取出来的数据放到dataset中,如这样:for(int i=0;i<dataset.table[0].rows.count;i++){string[] aa=dataset.table[0].rows[i]["列字段"].tostring();}然后把要验证的数据和数组aa中的数据一一验证:string bb=aa[i]...

C# 循环读取数据库数据的问题
sqlcom.Connection = sqlcon;sqlcom.CommandType = CommandType.Text;try { string sql = "SELECT * FROM 表1 WHERE 某字段='+a+'";sqlcom.CommandText = sql;SqlDataReader sqldr = sqlcom.ExecuteReader();while (sqldr.Read())\/\/这是一行一行的读取查询出来的数据集 { if (sqldr.Get...

C#读取数据库数据存入数组
在for循环中,第一句就有问题,始终是该二维数组的第一维的数值在变化,第二维的数值始终是0,也就是第二维的第一位始终有值,其他的没有值 根据数组规则,在索引下标位置的地方,下标为0的是第一个数,下标为1的是第二个数 根据推理:第二维数值的变化永远是第一位(下标是0),下标为1的值一直是默认...

...第二行数据,以此类推 111 22 33 44 我读取dataSet里面的 33 44 后 ...
DataSet是一个盒子,里面可以放若干DataTable、DataView等,DataTable对应数据库里表,数据即放在其中。所以读取DataSet中的数据即是读取DataTable中的数据。L_Result.Text = ""; \/\/放一个Label控件显示结果 DataSet myDS = new DataSet();myDA.Fill(myDS); \/\/通过DataAdapter装入数据,DataAdapter定义略...

c# valuemember插入数据到数据库的问题,不能插入对应的数据到数据库
因你只是将name加进了combobox,所有没有ID值。在获得DATASET后,不要FOREACH子句,直接用下面的代码 comboBox1.DataSource = ds.Tables[0];comboBox1.DisplayMember = "departname";comboBox1.ValueMember = "departid“

C# 怎样把数据库中的多张表一次性的存进同一个DataSet里面
其实这也很简单,方法如下:1、动态操作DataSet:简单的说,先给DataSet创建几个table,然后修改sda.Fill(ds);中的ds到其中的具体表,注意这时的sql语句是每次选取一个表;2、如果想一次性把多个表存储到DataSet中,可以通过存储过程,在存储过程中多写几条select就行了 希望能帮到你 ^-^ ...

C#DataSet与DataTable的区别和用法
你可以把DataTable和DataSet看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器?原因是,这种容器的功能比较强大,除了可以存数据,还可以有更大用途。举例:在一个c\/s结构的桌面数据库系统里,...

相似回答
大家正在搜