2 回答

TA貢獻1775條經驗 獲得超8個贊
首先要知道哪個方法拋出異常。
在您的情況下,CopyToDatabase 方法將拋出此異常,如下所述:
無效操作異常
源序列不包含任何 DataRow 對象。
為了確保這一點,您可以拆分您的請求:
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();
}
而且這更容易調試,因為您可以使用調試器逐行進行調試。您可以稍后壓縮代碼。

TA貢獻1821條經驗 獲得超6個贊
你不能 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 關注
- 142 瀏覽
添加回答
舉報