gpt4 book ai didi

c# - Getter 返回空的读取器值

转载 作者:行者123 更新时间:2023-11-30 22:38:47 25 4
gpt4 key购买 nike

我试图通过 Getter 返回一个字符串,该字符串是从循环通过 mysql 查询的 DataRead 对象获得的。问题是,在加载时,字符串没有加载到主窗体的标签上,它返回一个空字符串,如果我在声明时将一个字符串分配给变量,它将返回到我的主窗体。这是代码:

string text;
public string Text { get { return text; } }

public void DBConn()
{
MySqlConnection conn = new MySqlConnection(connStr);
DataSet ds = new DataSet();
MySqlDataReader reader = null;

try
{
// connection to DB
reader = cmd.ExecuteReader();
if (reader != null && reader.HasRows)
{
while (reader.Read())
{
text = reader["string1"].ToString() + " " + reader["string2"].ToString() + " " + reader["string3"].ToString();
}
}
}
// try, catch. conn.close()
}

读者将值赋给 text 就好了,但是在 while 之外,值没有赋给全局声明的变量,它似乎一离开循环就被销毁了.有人可以帮忙吗?

谢谢。

最佳答案

感谢那些帮助我找到所描述问题的解决方案的人。正如你们中的一些人友好地解释的那样(在完成大量研究之前我一开始缺乏理解的知识),这个问题原来是我的主要形式与调用的第一类不同的实例其中包含 Getter 的类。我现在知道我应该在原帖中提到所有这些细节,我向那些试图从一小段代码中理解的人道歉。在对 Instances 进行了大量研究之后,我得出的解决方案是首先创建一个包含静态 Getters 和 Setters 的类 public static string Text { set;得到; } (这就是我希望它可以从其他类轻松访问的方式)这有助于使它们可以从所有实例访问,它可能不是最好的解决方案,尤其是在 OOP 上——在我的研究中,我在某处读到使用 Setters 和Getters 是浪费时间,不是程序员的最佳实践,最好封装,但因为我还很新鲜,所以我稍后会看看如何做。

再次感谢大家。

关于c# - Getter 返回空的读取器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664188/

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