C# Lambda表达式中带有AND运算符的Lambda表达式
我犯了一个错误( 对象引用未设置为对象的实例 )当我尝试执行数据库操作时,似乎找不到问题所在,一定是来自此C# Lambda表达式中带有AND运算符的Lambda表达式,c#,.net,linq,entity-framework,lambda,C#,.net,Linq,Entity Framework,Lambda,我犯了一个错误( 对象引用未设置为对象的实例 )当我尝试执行数据库操作时,似乎找不到问题所在,一定是来自此p.ADRESA.Equals(listBox1.SelectedItem.ToString(),因为如果没有它,代码可以工作,但我需要两个条件,请帮助 Int16 idValoare =Convert.ToInt16 (comboBoxIDValoare.SelectedItem.ToString()); if (selectedTabel.Equals("CUSTOM
p.ADRESA.Equals(listBox1.SelectedItem.ToString()
,因为如果没有它,代码可以工作,但我需要两个条件,请帮助
Int16 idValoare =Convert.ToInt16 (comboBoxIDValoare.SelectedItem.ToString());
if (selectedTabel.Equals("CUSTOMER"))
{
if (selectedColoana.Equals("ADRESA"))
{
CUSTOMER customer = db.CUSTOMERs.First(p => (p.CUSTOMERID == idValoare) && (p.ADRESA.Equals(listBox1.SelectedItem.ToString())));
customer.ADRESA = textBoxValoare.Text;
db.SaveChanges();
}
}
您的
列表框1
似乎没有选定的项。您应该在执行任何代码之前添加一个额外的条件来执行该检查
简单地说:
if (listbox1.SelectedItem == null)
{
//get the hell out of here
}
else
{
//do your stuff
}
不能在LINQ方法中使用
ToString()
,但可以尝试以下方法:
string selectedItem = listBox1.SelectedItem.ToString();
CUSTOMER customer = db.CUSTOMERs.First(p => (p.CUSTOMERID == idValoare) && (p.ADRESA.Equals(selectedItem)));
我希望这能对你有所帮助。请反馈。你试过调试和检查值吗?我的心理调试能力告诉我listBox1没有选择任何项目。listBox1.SelectedItem可能为null除了
SelectedItem
可能为null之外,Equals
还可能引发NullReferenceException
如果P.ADRESA < /代码>是“代码> null <代码>。您可以考虑使用<代码>=< /代码>运算符。我检查了SelectedItem不是NULL:在这行客户Cux= DB。客户。首先(P= >(PuxCurrIDI= IdValoAES)& &(P.ADRESA。(ListBox X.SalestIt.ToStRun()));客户Cuth= DB。客户。第一(P=)(p.CUSTOMERID==idValoare));works fineCanADRESA
在数据库中是否为空?在调试器中,它显示:System.Data.Entity.dll中发生了类型为“System.NotSupportedException”的未经处理的异常。其他信息:LINQ to Entities无法识别方法“System.String ToString”()'方法,而此方法无法转换为存储表达式。