次のコードで GridView コントロールをバインドしようとしています。しかし、「Data is Null. This method or property cannot be called on Null values.」というエラーが表示されます。エラー行は「 p.MaterialName = reader.GetString(reader.GetOrdinal("MaterialName"));」です。Materials テーブルのすべてのフィールドにデータがあります。コードの何が問題になっていますか? 修正するのを手伝ってください。
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;
}