[英]“Value cannot be null.\r\nParameter name: text”
我有一個方法(Win App C#)來填充DataGridView
如下,並在我的TxB_ProitirySearch_TextChanged
事件中使用它:
void PrioFillGrid(bool IsSearching= false)
{
if (IsSearching)
{
var ddd = from p in db.PDP_Priorities
where p.PriorityTitle.Contains(aski.Change(TxB_ProitirySearch.Text))
orderby p.ID descending
select new { p.ID, Title = p.PriorityTitle };
if (ddd.Count() > 0) // Solution1
{
DG_Priority.DataSource = ddd;
}
if (ddd != null) // Solution2
{
DG_Priority.DataSource = ddd;
}
else
{
DG_Priority.DataSource = from p in db.PDP_Priorities
orderby p.ID descending
select new { p.ID, Title = p.PriorityTitle };
}
}
else
{
DG_Priority.DataSource = from p in db.PDP_Priorities
orderby p.ID descending
select new { p.ID, Title = p.PriorityTitle };
}
}
當我輸入一個字符時,它會在 gridview 中很好地搜索並更新數據,但是按退格鍵清除文本框並開始新的搜索會引發此異常:
System.Data.Linq.dll 中發生類型為“System.ArgumentNullException”的未處理異常”
值不能為空。 參數名稱:文本
(注釋: aski.Change(TxB_ProitirySearch.Text)
是一個防止不需要的字符保存在數據庫中的類)
我想知道為什么解決方案 1 和 2 都無濟於事。
有人可以幫我嗎?
提前致謝。
非常感謝你們,大師們。 改變“PriorityTitle.Contains 到 PriorityTitle?.Contains?” 對我不起作用,但使用其他指南,我更改了類, aski.change() 如下:
public string Change(string k)
{
if (k==string.Empty)
{
return null;
}
else
{
//some codes...
return str;
}
}
然后更改我的“PrioFillGrid()”方法如下:
void PrioFillGrid(bool IsSearching= false)
{
if (aski.Change(TxB_ProitirySearch.Text) == null)
{
DG_Priority.DataSource = from p in db.PDP_Priorities
orderby p.ID descending
select new { p.ID, Title = p.PriorityTitle };
}
else if (IsSearching && aski.Change(TxB_ProitirySearch.Text) != null)
{
var ddd= from p in db.PDP_Priorities
where p.PriorityTitle.Contains(aski.Change(TxB_ProitirySearch.Text))
orderby p.ID descending
select new { p.ID, Title = p.PriorityTitle };
DG_Priority.DataSource = ddd;
}
else
{
DG_Priority.DataSource = from p in db.PDP_Priorities
orderby p.ID descending
select new { p.ID, Title = p.PriorityTitle };
}
}
現在運行良好。 再次感謝每一個身體。
對我來說,問題是 DI 機制創建了UrlHelper
實例,這導致該實例的所有屬性都為 null,包括routeCollection
和requestContext
,通過將 UrlHelper 實例直接傳遞給需要它的方法來解決。
解決方案 1 和 2 沒有幫助,因為異常是事先拋出的。
我在 aski.Change() 方法中猜測。
嘗試
if (IsSearching && !string.IsNullOrEmpty(TxB_ProitirySearch.Text))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.