Я пытаюсь вернуть строку, хотя Getter, строка получена из объекта DataRead, который проходит через запрос mysql. Проблема заключается в том, что при загрузке строка не загружается на метку основной формы, она возвращает пустую строку, и если я назначу строку переменной при объявлении, она вернет ее в мою основную форму. Вот код:Getter возвращает пустое значение считывателя
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', которую вы, возможно, отредактировали вне вашего вопроса? BTW, в этом типе сценария вместо того, чтобы объявлять переменную поддержки самостоятельно, вы можете использовать 'public string Text {get; частный набор; } ', а затем назначить« Text = reader ... ». Setter является приватным классу, когда объявляется таким образом. –
У меня получилось, что я не понял, но не понял. Я объявил, что и переменная, и геттер вне любого метода, странно, что у меня есть пара сеттеров, а также они устанавливают значение для класса. – hectormtnezg
Как бы то ни было, ваш цикл сбрасывает значение текста на каждой итерации. Может быть, последняя итерация имеет пустое значение? –