Я пытаюсь связать элемент управления GridView со следующим кодом. Но я получаю сообщение об ошибке «Data is Null. Этот метод или свойство не могут быть вызваны значениями Null». Строка ошибки - «p.MaterialName = reader.GetString (reader.GetOrdinal (« MaterialName »)); У меня есть данные во всех полях в таблице «Материалы». Что не так с кодом? Пожалуйста, помогите мне исправить это.Не удалось привязать Gridview
public static List<Product> GetMaterials()
{
SqlHelper objSqlHelper = new SqlHelper();
SqlDataReader reader = objSqlHelper.ExecuteReader("GetMaterials");
List<Product> objMaterials = new List<Product>();
Product p = new Product();
while (reader.Read())
{
p.MaterialId = reader.GetInt32(reader.GetOrdinal("MaterialId"));
p.MaterialName = reader.GetString(reader.GetOrdinal("MaterialName"));
p.desc = reader.GetString(reader.GetOrdinal("desc"));
p.MaterialPrice = reader.GetDecimal(reader.GetOrdinal("MaterialPrice"));
p.Datasheet = reader.GetString(reader.GetOrdinal("Datasheet"));
objMaterials.Add(p);
}
reader.Close();
return objMaterials;
}
Это работает, то я изменил для другой, но для MaterialPrice, я получаю ошибку компиляции "p.MaterialPrice = reader.IsDBNull (reader.GetOrdinal (" MaterialPrice "))? null: reader.GetDecimal (reader.GetOrdinal (" MaterialPrice ")); – ayha
error Ошибка Тип условного выражения не может быть определен, потому что нет никакого неявного преобразования между '' и 'decimal' –
ayha
Если 'p.MaterialPrice' - поле с нулевым значением, вы можете использовать« (десятичное) значение null ». Если 'p.MaterialPrice' не имеет значения NULL, вам нужно решить, какое значение по умолчанию должно быть, например' 0'. Я отредактирую свой ответ. –