Tôi có một cột ngày trong cơ sở dữ liệu của mình. Tôi có hai nút dữ liệu (quá khứ và hiện tại) ba nút radio được gọi là, nhà bán lẻ, đại lý phụ và đại lý. Tôi muốn hiển thị tất cả các bản ghi giữa hai ngày trong datagrid của tôi. Nhưng trước tiên tôi sẽ đặt hai ngày và chọn một nút radio và nhấp vào nút tìm kiếm. Tôi đã giải quyết được vấn đề của mình trong radiobuttons. Tôi chỉ cần đặt "OR" trong truy vấn của tôi để nó sẽ vẫn còn ngay cả khi vấn đề m trong việc có được ngày giữa hai ngày wont. Tôi không sử dụng datime vì tôi đã sử dụng varchar làm kiểu dữ liệu cho ngày trong cơ sở dữ liệu của mình. Tôi không thể thay đổi nó thành datetime bởi vì đó là những gì giáo viên của tôi đã cho tôi.Lấy tất cả hồ sơ từ cơ sở dữ liệu giữa hai ngày C#
Đây là mã của tôi. Cảm ơn bạn rất nhiều.
public static List<Retailer> GetDataByType(string type, string past, string present)
{
List<Retailer> data = new List<Retailer>();
MySqlConnection con = DBConnection.ConnectDatabase();
try
{ // AND
MySqlCommand cmd = new MySqlCommand("SELECT * FROM " + tablename + " WHERE date BETWEEN '" + past + "' AND '" + present + "'" + "' OR type LIKE '%" + type + "%'", con);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
Retailer rawData = new Retailer();
rawData.Date = reader.GetString(0);
rawData.Walletid = reader.GetString(1);
rawData.Fname = reader.GetString(2);
rawData.Lname = reader.GetString(3);
rawData.Birthdate = reader.GetString(4);
rawData.Address = reader.GetString(5);
rawData.Province = reader.GetString(6);
rawData.City = reader.GetString(7);
rawData.Balance = reader.GetDouble(8);
rawData.Frozen = reader.GetDouble(9);
rawData.Sponsor_id = reader.GetString(10);
rawData.Share = reader.GetDecimal(11);
rawData.Email = reader.GetString(12);
rawData.Password = reader.GetString(13);
rawData.Type = reader.GetInt32(14);
data.Add(rawData);
MessageBox.Show(rawData.Date);
}
}
reader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
return data;
}
}
chuyển đổi ngày chuỗi thành một ngày: http://stackoverflow.com/questions/5201383/how-to-convert-a-string-to-date-in-mysql – Jens
Định dạng của 'quá khứ' và 'present' là điểm mấu chốt ở đây. Bạn cần có chúng ở định dạng mặc định của MySQL. Tuy nhiên, giải pháp tối ưu là sử dụng các tham số và chỉ định kiểu là DateTime. – user3185569
Có thể trùng lặp: http://stackoverflow.com/questions/14952518/mysql-date-time-format-using-c-sharp – user3185569