我有一个应用程序,我存储一个值为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