c# - access 2007查询和c#数据表显示不同的输出

标签 c# ms-access-2007 oledb

我在 access 2007 中有以下查询,它使用 access 的 sql 设计 View 给了我正确的结果。

  SELECT B1.LAYER_TYPE,
  B1.LAYER_NAME AS LAYER_NAME,
  B2.LAYER_NAME AS RELATED_LAYER_NAME,
  B3.LAYER_NAME AS RELATED_LAYER2_NAME,
  C.RULE_NAME
  FROM (((NCS_RULES_RELATIONS AS A
  LEFT JOIN NCS_LAYERS AS B1 ON A.LAYER_ID = B1.LAYER_ID)
  LEFT JOIN NCS_LAYERS AS B2 ON A.RELTD_LAYER_ID = B2.LAYER_ID)
  LEFT JOIN NCS_LAYERS AS B3 ON A.RELTD_LAYER2_ID = B3.LAYER_ID)
  LEFT JOIN NCS_RULES AS C ON A.RULE_ID = C.RULE_ID
  ORDER BY B1.LAYER_TYPE;

结果如下:

query results in access

但是当我尝试使用 c#oledbconnection 访问数据表时,最后一行的 RULE_NAME 字段值显示奇怪的结果(参见下图) )。

from visualstudio

我的检索表的代码如下:

public DataTable GetTable(string strSelectSQL)
        {
            if (this.con.State != ConnectionState.Open)
                con.Open();

            DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            IDbCommand command = con.CreateCommand();
            command.CommandText = strSelectSQL;
            command.Connection = con;

            IDbDataAdapter da = factory.CreateDataAdapter();
            da.SelectCommand = command;
            da.Fill(ds);

            dt = ds.Tables[0];

            con.Close();
            return dt;

        }

有人可以帮我解决这种奇怪的行为吗?

最佳答案

看来一切都很好。我猜您在 Rule_name 字段 中有多行值,如下所示:AnnoFromLine\n\rDimOnLine。如您所见,Datagridview 显示多行值,而 sql 设计 View 仅显示第一行。

关于c# - access 2007查询和c#数据表显示不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813264/

相关文章:

c# - 对多个文件使用多个流会产生 System.ObjectDisposedException "Cannot access a closed file."

windows-7 - 如何让 Microsoft Access 2007 32 位在 Windows 7 64 位上显示 64 位 ODBC 驱动程序?

ms-access - 从匹配记录中返回特定字段

c# - 如何使用重复器以编程方式添加未知数量的列,其中某些列是在运行时在 SQL 字符串中声明的?

c# - LINQ:将数组 [,] 转换为数组 []

c# - 来自 Eric Lippert 的博客 : "don' t close over the loop variable"

java - 从 MS Access 输出获取 Unicode 数据将为 "???????????????????"

c# - 带有 OLEDB 的 C# 中的 Excel 前缀字符在更新时导致 "Data type mismatch in criteria expression"错误

c# - 如何使用 Jet OLEDB 打开 CSV 或 XLS 文件并获得表锁定?

C# - SQL Server - ?参数和 Oledb