ADO.NET请求不返回所有列的数据

时间:2011-10-15 18:04:54

标签: c# .net asp.net ado.net sql-server-express

使用VS2010和SQLEXPRESS处理小型项目。

我的下表包含我输入的一些数据:

Table fields

执行此操作时:

using (SqlConnection conn = new SqlConnection(connString)) {
    conn.Open();
    SqlCommand cmd = new SqlCommand("SELECT * FROM ACCOUNTS", conn);

    using (SqlDataReader reader = cmd.ExecuteReader()) {
        while (reader.Read()) {
            accountList.Add(new Account((int)reader["id"], (float)reader["number"], (AccountType)reader["type"], (string)reader["name"], (float)reader["balance"], (float)reader["maxdebit"], (int)reader["userId"]));
        }//Not tested
    } // Dispose Reader

    //do something here
} // Dispose implicitly called

调试器显示以下内容:

Debugger output

出于某种原因,他只得到前4列。我以前从未见过这种行为,并且获得它的代码似乎很好。有人为我找到任何线索吗?

编辑:问题解决了。

问题原来是InvalidCastingException。由于某些原因。事实证明,只有4个数组项目出现的问题并不是真正的问题。 FieldCount变量指示了7个字段,这正是表中的内容。所以这些都被取回了。

我的表数据如下所示:

Ik0Ap.png(添加imgur plz ...没有图像,只有10个声望点时只有2个超链接。我编辑显示这已经解决了所以我提交了......所以我有这个问题)

10分以下最多2个超链接......

它清楚地说“浮动”,所以我做了一个浮动的演员。但根据VS调试器,它是双倍的。所以演员无效。 叹息

这是主要问题。为什么只显示4个阵列对我来说仍然是一个谜......也许VS2010设置可以防止数千个对象的数组被打印到调试器?

1 个答案:

答案 0 :(得分:0)

尝试明确指定列,如:

SELECT id, name, number, type, balance, ... etc.