对MySql数据库的C#查询并不返回所有列

时间:2016-10-04 16:38:23

标签: c# mysql datatable

我遇到的问题是我在C#中使用非常简单的MySql查询将数据返回到表中。但是,它只返回4列中的3列。

select语句是:

"SELECT * FROM workorder.forecast"

数据库表有4列: id |预测| foredate |植物

当我在MySQL Workbench中运行查询时,它输出就好了。但是,不知何故,下面的代码会删除“foredate”'通过C#查询时的列。因此,输出表格中的数据是除了整个' foredate'之外的所有内容。列。

这是我的C#:

DataTable returnTable = new DataTable();

using (var conn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["workorderConnectionString"].ConnectionString))
{
    conn.Open();

    using (var cmd = conn.CreateCommand())
    {

        cmd.CommandText = "SELECT * FROM workorder.forecast";

        MySqlDataReader reader = cmd.ExecuteReader();

        returnTable.Load(reader);
    }
}

GridView1.DataSource = returnTable;
GridView1.DataBind();

我尝试调用SELECT语句中的列而不是使用星号(*),但结果相同。我发布的这段代码实际上是一个非常简单的版本,我几乎删除了我可以尝试和排除故障的所有内容。

我在这里不知所措,我还没能找到与此问题相关的任何其他帖子。

1 个答案:

答案 0 :(得分:0)

在注意到我用来填充我的Gridview的数据表确实包含了列之后,我花了一些时间试图找出在绑定数据时我丢失列的原因。

我认为它与日期时间格式有关,但我无法找出原因。

但我确实找到了一个解决我的SELECT语句的方法。我将其更改为以下内容,将datetime字段转换为varchar:

SELECT id, forecast, DATE_FORMAT(foredate, '%m-%d-%Y') as foredate, plant FROM workorder.forecast

执行此操作后,该列现在将显示在gridview中。