Man*_*ani 12 .net c# ado.net dataset
我正在向这样的数据集添加数据表:
DataTable dtImage = new DataTable();
//some updates in the Datatable
ds.Tables.Add(dtImage);
Run Code Online (Sandbox Code Playgroud)
但是下一次,当数据表更新时,它会反映在数据集中吗?或者我们需要编写一些代码来反映它?
另外,我正在检查数据集是否数据集已存在于已使用的数据集中:
if(!ds.Tables.Contains("dtImage"))
ds.Tables.Add(dtImage);
Run Code Online (Sandbox Code Playgroud)
在第一次迭代中,ds.Tables.Contains("dtImage")为false,因此,ds.Tables.Add(dtImage)
将表添加到数据集中.但在第二次迭代中,ds.Tables.Contains("dtImage")再次为false,但ds.Tables.Add(dtImage)抛出错误:
数据表已属于此数据集.
如果数据集不包含名为"dtImage"的数据表,为什么会抛出错误?
更新:谢谢,这个问题得到了解决.请回答这个问题:
但是下一次,当数据表更新时,它会反映在数据集中吗?或者我们需要编写一些代码来反映它?
Tim*_*ter 12
我假设你没有设置TableNameDataTable 的属性,例如通过构造函数:
var tbl = new DataTable("dtImage");
Run Code Online (Sandbox Code Playgroud)
如果您没有提供名称,它将自动创建"Table1",下一个表格将获得"Table2",依此类推.
然后解决方案是提供TableName然后检查Contains(nameOfTable).
为了澄清它:你会得到一个ArgumentException如果数据表已经属于数据集(相同的).DuplicateNameException如果DataSet中的DataTable具有相同的名称(不区分大小写),您将得到一个.
http://msdn.microsoft.com/en-us/library/as4zy2kc.aspx
你必须将你想要的tableName设置为你的dtimage
dtImage.TableName="mydtimage";
if(!ds.Tables.Contains(dtImage.TableName))
ds.Tables.Add(dtImage);
Run Code Online (Sandbox Code Playgroud)
它将反映在数据集中,因为数据集是数据表dtimage的容器,你可以参考你的dtimage
小智 5
只需为 DataTable 提供任何名称,例如:
DataTable dt = new DataTable();
dt = SecondDataTable.Copy();
dt .TableName = "New Name";
DataSet.Tables.Add(dt );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99737 次 |
| 最近记录: |