返回空读取器值的Getter

本文关键字:Getter 读取 返回 | 更新日期: 2023-09-27 18:04:54

我试图通过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()
}

阅读器将值赋给文本很好,但在while之外,值没有赋给全局声明的变量,它似乎在离开循环后立即被销毁。有人能帮忙吗?

谢谢。

返回空读取器值的Getter

感谢那些帮助我找到问题解决方案的人。正如你们中的一些人好心解释的那样(在做了大量研究之前,我一开始缺乏理解的知识),这个问题原来是一个问题,我的Main表单与第一个调用具有Getter的类的类在不同的实例中。我现在知道我应该在最初的帖子中提到所有这些细节,我向那些试图从一小段代码中理解的人道歉。实例很多研究后,我的解决方案是首先,创建一个类包含静态getter和setter public static string Text { set; get; }(这就是我想要的简单访问来自其他类)这有助于使他们可以从所有实例,它可能不是最好的解决方案尤其在OOP——在我的研究中我读到某个地方,使用setter和getter是浪费时间,而不是程序员的最佳实践,最好是封装,但因为我还很新鲜,我以后会看看如何做到这一点。

再次感谢大家