为什么TableName是"表"在SQL中获取唯一ID的行?

时间:2017-01-08 21:37:40

标签: c# sql datatable dataset

我有一种方法可以通过Id获取地址簿应用程序的DataSet。

    public DataSet GetElementById(int id)
    {
        string commtext = string.Format("select * from ADDRESSES where Id={0}", id);
        DataSet set = new DataSet();
        adapter = new OleDbDataAdapter(commtext, connection);
        adapter.Fill(set);
        return set;
    }

我在Access中只有一个名为ADDRESSES的表,但set.Tables[0].TableName返回Table,尽管我没有这样的表。为什么会这样?

1 个答案:

答案 0 :(得分:1)

OleDbDataAdapter没有尝试解析您的查询以提取表名或尝试从数据库中读取名称。

没有任何有意义的理由,这将是一次性能打击。它默认将从检索到的每个表命名为顺序namig,从"表"然后"表1"等等。您可以看到此explained on MSDN

  

...其他结果集以。命名   将整数值附加到指定的表名称(例如,   "表","表1","表2"等等。)

此外,如果您确实需要为第一个表分配值,则只需使用带有附加字符串参数的重载来传递表的名称

adapter.Fill(set, "ADDRESSES");