gpt4 book ai didi

c# - 我想在面板和标签或列表框中显示原因,其中包含日期和公里,我的计算机日期将为(date-before_day)

转载 作者:行者123 更新时间:2023-11-30 00:10:42 27 4
gpt4 key购买 nike

this is my reminder(MySQL) table ,当我的计算机日期为 (date-before_day) 时,我想在面板和标签或列表框中显示带有日期和公里的原因

void show_reminder()
{
string date = string.Empty;
string cause = string.Empty;
string t = DateTime.Now.ToString("yyyyMMdd");
string t1 = DateTime.Now.ToString("yyyy/MM/dd");
int km, km_now, before_day, today_date, rem_date = 0;
today_date = Convert.ToInt32(t);

string myConnection = "datasource= localhost;port=3306;username=root;password=root";
MySqlConnection myConn = new MySqlConnection(myConnection);
MySqlCommand SelectCommand = new MySqlCommand("select * from bs.reminder ", myConn);//where date='" + t1 + "'
MySqlDataReader myReader;
myConn.Open();

myReader = SelectCommand.ExecuteReader();
while (myReader.Read())
{

date = DateTime.Parse(myReader.GetString(2)).ToString("yyyyMMdd");
km = myReader.GetInt32(3);
before_day = myReader.GetInt32(4);
rem_date = Convert.ToInt32(date);
km_now = Convert.ToInt32(label66.Text);


if (today_date >= rem_date - before_day)
{
cause = myReader.GetString(1);

listView1.Items.Add(cause);
panel10.Visible = true;



}

else if (km_now >= km)
{
panel10.Visible = true;
}
else
panel10.Visible = false;

}
}

最佳答案

第一:关于获取正确的记录:

不确定您要显示哪一天。以下是给定日期 dt 之前和之后 1 天的 MySQL 兼容字符串:

string sDateBefore = dt.AddDays(-1).ToString("yyyy-MM-dd");
string sDateAfter = dt.AddDays( 1).ToString("yyyy-MM-dd");

因此,假设您想要明天的提醒记录,您可以这样写:

string sTomorrow  = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");

您的选择可能是

MySqlCommand SelectCommand = new MySqlCommand(
"SELECT * FROM bs.reminder WHERE date = '" + sTomorrow + "';", myConn);

我假设您想在计算中使用 before_day 字段。以下是如何做到这一点:

MySqlCommand SelectCommand = new MySqlCommand(
"SELECT * FROM bs.reminder "
+ " WHERE From_Days( To_Days( date ) - before_day ) = '" + sTomorrow + "';", myConn);

像往常一样,我们应该花一点时间了解 SQL 注入(inject)的危险并考虑使用参数;但按照字符串的创建方式,我在这里没有看到任何问题..

(..这当然是最著名的遗言之一。)

第二:关于面板和显示结果集

您想要显示一个“原因”,它看起来像一个字符串字段。您不能(轻松)使用 Panel 来实现此目的。您可以使用Label(关闭自动调整大小并根据需要调整大小),或者更有可能使用TextBox,可能启用MultiLine .

不过,您可以使用面板将字段分组在一起。

如果您希望有多个提醒记录,您可以使用 ListViewListBox 并编写 SelectionChanged 事件脚本来显示详细信息。如果您将记录添加到Listbox,您应该考虑创建一个Reminder Class,然后它可以包含自定义的ToString() 方法。当您将该类的实例添加到 ListBox 时,它会很好地显示它,并且您仍然可以将选择的 Item 转换为提醒并使用记录的所有字段。

显然还有DataGridview,它是用来显示大型结果集的。

关于c# - 我想在面板和标签或列表框中显示原因,其中包含日期和公里,我的计算机日期将为(date-before_day),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24093539/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com