gpt4 book ai didi

c# - 值设置正确但在使用时为空

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:23 25 4
gpt4 key购买 nike

好的,我已经能够从一个类 Login 中检索一个值,并且能够将它存储在另一个类 Main 的公共(public)变量 userID 中。我知道该值已正确设置,因为它正在我的应用程序主窗口上填充一个标签,该应用程序使用 Main 作为其类。该值还用于每秒轮询数据库,但是,这仅在我使用未参数化的 SQL 查询时有效。如果我尝试使用参数化查询,我会开始看到查询将值视为 null 的问题。

这个查询有效,但很糟糕:

SqlCommand cmd_getMessage = new SqlCommand("SELECT message, sender_ID, date_time FROM Message WHERE recipient_ID='" + userID + "'", SQL);

而这不是:

SqlCommand cmd_getMessage = new SqlCommand("SELECT message, sender_id, date_time FROM Message WHERE recipient_id=@recipient_id", SQL);
cmd_getMessage.Parameters.AddWithValue("@recipient_id", userID);

值得注意的是,这些查询与公共(public)变量属于同一个类。如果我尝试从另一个类访问变量,然后在 SQL 查询中使用它,那么即使是未参数化的查询也将不起作用

希望这些信息足以供您使用。感谢您的宝贵时间。

最佳答案

我的猜测是 userID 在某些时候为空。

尝试将参数行更改为:

cmd_getMessage.Parameters.AddWithValue("@recipient_id", userID ?? "");

然后看看你是否仍然收到错误。这将使两个查询的性能相同。

关于c# - 值设置正确但在使用时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22461899/

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