如何从mysql datetime字段中读取

时间:2013-03-16 14:16:24

标签: c# mysql .net

我正在尝试使用datetime类型读取mysql字段,我正在尝试所有内容,并且始终只返回字段名称。

这是我的代码:

using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
    connection.Open();

    string query = @"SELECT `sID`, 'sDate', `sGameLogin`, `dGameAmount`, 
                    'sPayMethod' FROM `XeronRequests` WHERE `iStatus` = 0";

    MySqlCommand cmd = new MySqlCommand(query, connection);
    cmd.CommandType = CommandType.Text;

    using (MySqlDataReader dataReader = cmd.ExecuteReader())
    {                    
        while (dataReader.Read())
        {
            list.Add(new PaymentInfoText(dataReader["sID"] + "", 
                     dataReader["sDate"] + "", 
                     dataReader["sGameLogin"] + "", 
                     dataReader["dGameAmount"] + "", 
                     dataReader["sPayMethod"] + ""));
        }
    }

    e.Result = list;
}

2 个答案:

答案 0 :(得分:3)

使用

dataReader.GetDateTime(dataReader.GetOrdinal("sDate"))

而不是

dataReader["sDate"] + ""

并删除sql中列的刻度,例如

sDate代替'sDate'。只有保留字或者列名中有空格时才需要它们:

9.3. Reserved Words

2.2. Reserved Words in MySQL 5.1

答案 1 :(得分:0)

问题在于您的SELECT声明,您使用单引号'而不是sDate附近的后退标记,因此该字段的值实际上是"sDate"。< / p>

或者正如Jon Skeet所说,完全摆脱后面的滴答声,因为它们只存在于关键词中,必须像[]那样为MSSQL做。