Nano Hash - криптовалюты, майнинг, программирование

Проверить значение datatable с помощью С#

Я хочу проверить, равны ли значения datatable того же столбца «int» или нет, поэтому, если это правда, я хочу вычислить сумму со значением содержимого. Это мой код, который всегда возвращается, когда я нажимаю кнопку суммы "pas tous entier". Заранее спасибо!

private void button7_Click(object sender, EventArgs e)
    {
        int i = 0, s = 0;
        String type ="int";

        DataTable dt = new DataTable("Table_insertion");

        bool exists = dt.AsEnumerable().Any(row => type == row.Field<String>("Type"));
        if (exists== true)
        {
            for (i = 0; i < dataGridView1.Rows.Count; ++i)
            {
                s += Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value);

            }
            label5.Text = s.ToString();           
        } 
        else
        {
            MessageBox.Show("pas tous entiers");
        }

    }
11.11.2019

  • Работает ли это, когда все значения на самом деле являются целыми числами, но выдает исключение, если строка не может быть интерпретирована как целое число? 11.11.2019
  • Похоже, вы хотите сделать что-то похожее на Как проверить, является ли число целым числом в .NET? 11.11.2019
  • @John Spiegel, когда все значения целые, он работает (без добавления переменной bool и условия if), но если я добавляю условие, оно всегда возвращается, когда я нажимаю кнопку суммы pas tous entiers. Когда я добавляю в таблицу данных строку, она показывает мне ошибка! 11.11.2019
  • @jazakari нет, я хочу проверить строковое значение с именем int в таблице данных 11.11.2019
  • DataTable dt = new DataTable("Table_insertion"); ‹== В нем никогда не будет никаких данных. 11.11.2019
  • @Joel Coehoorn Извините, я не совсем понял, что вы сказали, так как я могу получить данные из этой таблицы? 12.11.2019
  • Код в вопросе создает новую пустую таблицу без строк и столбцов. Там еще нет данных, чтобы получить. 12.11.2019
  • @Joel Coehoorn нет, у меня уже есть таблица с именем Table_insertion с данными, я не знал, как ее назвать! 12.11.2019
  • Это может быть правдой: у вас может быть эта таблица. Но код в этом вопросе просматривает другой экземпляр с данными, который просто использует то же имя и не имеет строк или столбцов. Чтобы помочь вам найти правильный стол, нам нужно больше узнать о том, где находится другой ваш стол. 12.11.2019

Ответы:


1

Данные здесь кажутся ненужными.

Возможно, достаточно следующего.

for (i = 0; i < dataGridView1.Rows.Count; ++i)
{
  var str = dataGridView1.Rows[i].Cells[2].Value?.ToString();

  if( !string.IsNullOrEmpty(str) && Int32.TryParse(str, out var parsed)
  {
     s += parsed;
  }
}

Если вы хотите проверить тип столбца в таблице данных, вы можете проверить его DataType.

foreach (var col in datatable1.Columns) 
{
      if ( col.DataType == typeof(System.Int16) || col.DataType == typeof(System.Int32)) // Or other types 
      {
           ....

11.11.2019
  • Да, я пробовал это, но он показывает мне ошибку => невозможно преобразовать объект в строку!! 12.11.2019
  • =›if (Int32.TryParse(str, out var проанализировано) 12.11.2019
  • да, это работает, даже если есть строковое значение, оно возвращает сумму, большое спасибо! 12.11.2019

  • 2

    Вы просто пытаетесь оценить, содержит ли возвращаемая строка только числа? Если это так, вы можете использовать регулярное выражение для данных. Здесь есть отличный пример: Regex только для чисел

    11.11.2019
  • нет, я хочу просто проверить строковое значение с именем int, существует ли оно в строках столбца с именем типа или нет 12.11.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..