indrajeet jadhav Ответов: 4

Как получить столбец datatable и проверить, что он равен нулю


Привет ребята
Мне нужна твоя помощь.Я написал SP и связанный с ним метод получения данных
public DataTable GetLatestQuantityOfProduct(Business.Stock objStock)
      {
          SqlDataAdapter da = new SqlDataAdapter();
          DataTable dt1 = new DataTable();
          try
          {
              using (SqlConnection conn = Connection.OpenConnection())
              {
                  SqlCommand cmd = new SqlCommand();
                  cmd.CommandText = "GetLatestQuantityOfProduct";
                  cmd.CommandType = System.Data.CommandType.StoredProcedure;
                  cmd.Connection = conn;
                  da.SelectCommand = cmd;
                  da.Fill(dt1);
              }

          }
          catch (Exception ex)
          {
              log.Error(System.Reflection.MethodBase.GetCurrentMethod().ToString() + ex.StackTrace);
          }
          return dt1;

      }

Так что мне нужно:
1). Во-первых, нужно получить столбец ProductID или поле из datatable
2). Проверьте, что ProductID равен нулю или нет

Я написал здесь какой-то код
DataTable dtQuantityData = new DataTable();//this is datatable 
dtQuantityData = objStockData.GetLatestQuantityOfProduct(objStockBusiness);//called method here

Поэтому мне нужна ваша помощь или есть другой способ, чтобы вы могли предложить мне
thanxx заранее

Ranjan.D

Дайте попробовать с этим , он проверяет первый ряд

if(dtQuantityData[0]["ProductID"] == DBNull.Ценность){
..
}

4 Ответов

Рейтинг:
1

Wendelius

Чтобы получить значение из столбца datarow, вы используете Item собственность. Видеть объект DataRow.Свойство Элемента (Строка)[^]

Что касается второго вопроса, то ответ от JoCodes правильный, вы можете использовать DBNull.Value, но что меня озадачивает, так это то, что имя вашей хранимой процедуры GetLatestQuantityOfProduct. Теперь, если хранимая процедура будет возвращать строки с NULL в ProductID, не будет ли это означать, что вы возвращаете суммы, но вы не знаете продукт :запутался:

То, что мне нужно, - это то, что вы должны вместо этого изменить SQL внутри хранимой процедуры, чтобы, возможно, устранить эти типы строк или что-то еще.

Конечно я могу быть на неправильном пути так как вы не описали логику и я просто предполагаю основываясь на именах :)


Рейтинг:
1

Shail Mishra

Я буду делать как....

(!DBNull.Value.Equals(dataSet.Tables[6].Rows[0]["_id"]))


CHill60

Я подозреваю, что вы получаете пониженный голос не только потому, что на этот вопрос был дан адекватный ответ более 4 лет назад, но и ваше решение-это просто дамп кода без каких-либо объяснений, и ни одна из переменных не соответствует исходному коду в вопросе.

Рейтинг:
0

JoCodes

Вы можете попробовать что-то вроде ниже

foreach(DataRow row in dtQuantityData.Rows)
{
    object val = row["ColumnName"];
    if (val == DBNull.Value)
        // your code
    else
        //your code
}

Надеюсь, это поможет


Ranjan.D

Ссылка - http://stackoverflow.com/questions/4604414/best-way-to-check-if-a-data-table-has-a-null-value-in-it

JoCodes

:)

Рейтинг:
0

Ankit Kandoliya

вы можете попробовать следующее условие, чтобы проверить наличие нулевого значения

row.IsNull("myColumn")


Maciej Los

Не публикуйте ответ на такие старые вопросы...

Ankit Kandoliya

Хорошо ... я просто предоставляю альтернативный способ использования.