Я получаю эту ошибку, и я не знаю почему.Ошибка при вызове метода, который возвращает строку C#
«Ссылка на объект требуется для не статического поля, метода или свойство»
Почему мне нужно иметь ссылку на объект здесь? Мой код, как показано ниже:
public string GetChanges()
{
string changelog = "";
MySqlConnection connection = new MySqlConnection("server=127.0.0.1;uid=root;pwd=pass;database=data");
try
{
connection.Open();
MySqlCommand cmd = new MySqlCommand("SELECT `change_log` FROM version WHERE ID = '1'", connection);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
if (!reader.IsDBNull(0))
{
changelog = reader.GetString(0);
}
}
connection.Close();
}
catch
{
//MessageBox.Show(e.Message, "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
return changelog;
}
Я звоню выше функцию, как так:
string changelog = GetChanges();
Почему ссылку на объект, необходимый в этом случае? Я не могу использовать static, потому что создаю веб-службу, которая не работает со статическими методами. Как это изменить для использования объектов?
Благодаря
Где именно вы вызываете 'getChanges()' from? – Rhumborl
Ваш метод GetChanges - это метод экземпляра _ по умолчанию. Вы не можете называть это без имени типа, которое принадлежит. Сделайте это 'static' или вызовите его с помощью своего типа, например' string changelog = MyType.GetChanges(); ' –
Где вы называете этот метод GetChanges? Мне кажется, вы должны отделить логику метода от интерфейса веб-службы и вызвать логику вместо службы из своего кода. Вызов метода веб-службы напрямую пахнет - вы в основном пытаетесь вымыть интерфейс. – Luaan