У меня следующий код читает набор данных из хранимой процедуры, а затем я сохраняю его в списке. Набор данных из хранимой процедуры работает нормально, он возвращает таблицу со значениями. Но я сохраняю исключение, сохраняя его в списке.Значение не может быть нулевым исключением
Код
public class mList
{
public DateTime Ee { get; set; }
public DateTime ndate { get; set; }
public int SNo { get; set; }
public int CId { get; set; }
public int rID { get; set; }
}
internal class Program
{
private static void Main(string[] args)
{
string procName = "listest";
SqlConnection conn=new SqlConnection(cs);
try
{
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand(procName, conn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
da.Fill(ds);
ds.Tables["t0"].TableName = "Rows";
List<mL> newlist = ds.Tables["t0"].AsEnumerable().Select(row => new mList
{
Ee = row.Field<DateTime?>(0).GetValueOrDefault(),
ndate = row.Field<DateTime?>(1).GetValueOrDefault(),
SNo = row.Field<int?>(2).GetValueOrDefault(),
CId = row.Field<int?>(3).GetValueOrDefault(),
rID = row.Field<int?>(4).GetValueOrDefault()
}).ToList();
}
}
Исключение я получаю System.ArgumentNullException was caught, Message=Value cannot be null.
Have/Можете ли вы отладку в и проверили эти значения во время выполнения? – Josh
Какое определение для 'mList'? Разрешает ли NULL? –
Надеюсь, вы уже проверили это (это не ясно из вашего вопроса), но таблица в вашем наборе данных действительно называется '' t0 "'? – hvd