带有mysql数据库的C#应用​​程序,日期保存为字符串

我有一个应用程序,我存储一个值为date-type“as string”

问题是当我执行程序时,在C#中没有正确显示查询结果,但是当我在mysql workbench中应用相同的查询时,结果是正确的.

日期值存储为mysql中的字符串;我们可以按照这种方式使用比较,还是错误?

string s = "select date  from guest,program where guestid=guest.id AND *date >= " + date + "* "' ";

最佳答案 由于数据库中的列是日期列,并且您要传递的值是DateTime结构,因此请尝试在命令中使用参数.在命令中使用参数可以避免很多问题,例如sql注入,类型定义等.对于示例:

string sql = "select date  from guest,program where guestid=guest.id AND date >= @date";

using (MySqlConnection con = new MySqlConnection("your connectionstring"))
{
    MySqlCommand cmd = new MySqlCommand(sql, con); 

    try 
    { 
        con.Open(); 
        cmd.Parameters.AddWithValue("date", date); 

        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                var dateField = (DateTime)reader["date"];
                // some task
            }
        }
    } 
    finally 
    { 
        con.Close(); 
    }
}

在这里阅读更多:http://www.csharp-station.com/Tutorial/AdoDotNet/Lesson06

点赞