I already use linq but search id only and it worked perfectly
var obj = (from VAR in db.infos
where VAR.id == 22
select new
{
title = VAR.title,
}).SingleOrDefault();
Label2.Text = obj.title.Trim();
If I try to search by location get a error
var obj = (from VAR in db.infos
where VAR.location.Trim() == "Lim"
select new
{
title = VAR.title.Trim(),
}).SingleOrDefault();
SearchJob.Items.Add(obj.title.Trim());
Label2.Text = obj.title;
Have a error in label2 line
Object reference not set to an instance of an object.
How do I fix it?
if (obj.title != null)
{
SearchJob.Items.Add(obj.title.Trim());
Label2.Text = obj.title;
}
Object reference not set to an instance of an object.
SOLUTION
Change SingleOrDefault() to FirstOrDefault()
You’re doing some nasty stuff there, VERY bad habits. For instance this:
Is a nonsense! Let me tell you why:
Always check the data BEFORE you insert it into your database, not AFTER. You’re creating a lot of unnecessary overhead this way, which could be avoided altogether. Trim the data before, never after.
Next thing – you need only a single string value, yet you create an anonymous object. WHY? Do this instead:
Use
SingleOrDefaultif you expect a single result or none. However, if you expect multiple results and want only the first, useFirstOrDefault.As you can see, I’m using
oinstead ofVAR. It’s true it doesn’t really matter that much, BUT, it’s never a good idea to use a word that’s very similar to one of the reserved words (var).If you get an exception
Object reference not set to an instance of an object., it means that your query returned a null and you’re trying to access a non-existing object. If your query may return null at some point, always check for null when accessing a member!EDIT
is bad too, because you need to check for null the object itself!
if you really want to use your bad approach.