2 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先要知道哪個(gè)方法拋出異常。
在您的情況下,CopyToDatabase 方法將拋出此異常,如下所述:
無效操作異常
源序列不包含任何 DataRow 對象。
為了確保這一點(diǎn),您可以拆分您的請求:
var designEnum= Designs.AsEnumerable();
var firstSelect = designEnum.Where(row => values.Contains(row.Field<Guid>("DesignGroupId"));
var secondSelect = firstSelect.Where(row => row.Field<int>("DesignKey") == null);
if (secondSelect.Count == 0)
{
? ? //Handle the fact that you have no data
? ? design = null;
}
else
{
? ? designs = secondSelect.CopyToDataTable();
}
而且這更容易調(diào)試,因?yàn)槟梢允褂谜{(diào)試器逐行進(jìn)行調(diào)試。您可以稍后壓縮代碼。

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
你不能 CopyToDataTable null
這對你有用:
void Main()
{
DataTable Designs = new DataTable();
Designs.Columns.Add("DesignGroupId", typeof(Guid));
Designs.Rows.Add(Guid.NewGuid());
Designs.Rows.Add(Guid.NewGuid());
Designs.Rows.Add(Guid.NewGuid());
Designs.Rows.Add(Guid.Parse("7c176832-593c-402f-9def-fbe12da3742f"));
List<Guid> values = new List<Guid>();
values.Add(Guid.NewGuid());
values.Add(Guid.NewGuid());
values.Add(Guid.NewGuid());
//values.Add(Guid.Parse("7c176832-593c-402f-9def-fbe12da3742f"));
var res = Designs.AsEnumerable().Where(row => values.Contains(row.Field<Guid>("DesignGroupId"))).ToList();
if (res.Count > 0 )
Designs = res.CopyToDataTable();
else
Designs.Clear();
}
- 2 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)