При получении значений Max из базы данных SQLite не появляется сообщение о текущей строке - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу получить максимальное значение из базы данных, если база данных не пуста.Программа работает нормально, но выдает сообщение No Current Row при запуске.Я запросил, как это,

 public int GetMaxValue(String table, String column, int columnIndex)
        {
            try
            {
                int values = -1;

                String query = "SELECT MAX(" + column + ") FROM " + table;
                SQLiteCommand sQLiteCommand = new SQLiteCommand(query, sQLiteConnection);
                sQLiteCommand.ExecuteNonQuery();

                using (SQLiteDataReader sQLiteDataReader = sQLiteCommand.ExecuteReader())
                {
                    if (!sQLiteDataReader.IsDBNull(0))
                    {
                        while (sQLiteDataReader.Read())
                        {
                            values = sQLiteDataReader.GetInt32(columnIndex);
                            sQLiteDataReader.Close();
                            return values;
                        }
                    }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return -1;
        }

и вызвал этот метод,

string orderNo = database.GetMaxValue(Database.TABLE_ORDER, Database.INVOICE_NO_ORDER, 0).ToString();

в вышеупомянутой функции, я уже проверял, если Reader Null, то не продолжайте это,

 if (!sQLiteDataReader.IsDBNull(0))

                    }

, но это не работает.Пожалуйста, расскажите, как избавиться от сообщения «Нет текущей строки»

1 Ответ

0 голосов
/ 14 сентября 2018

Это решит мою проблему

public Int32 GetMaxValue(String table, String column, int columnIndex)
        {
            try
            {
                Int32 values = -1;

                String query = "SELECT MAX(" + column + ") FROM " + table;
                SQLiteCommand sQLiteCommand = new SQLiteCommand(query, sQLiteConnection);
                sQLiteCommand.ExecuteScalar();

                using (SQLiteDataReader sQLiteDataReader = sQLiteCommand.ExecuteReader())
                {
                    if (sQLiteDataReader.Read())
                    {
                        while (sQLiteDataReader.Read())
                        {
                            values = sQLiteDataReader.GetInt32(columnIndex);
                            return values;
                        }
                    }

                    sQLiteDataReader.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return -1;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...