【发布时间】:2017-03-09 11:56:37
【问题描述】:
我刚刚从JAVA 移动到C#(只是为了获得一些经验),我正在尝试从数据库中获取一些数据。
数据库包含一个名为USERS 的表和列USER(string) 和POINTS(int)
现在我正在尝试使用LINQ 数据上下文并使用其中一种方法来选择表,但由于某种原因它不起作用...
private int getUserPoints(string nickname)
{
int points = 0;
try {
var p = from r in db.USERs
where r.USER1 == nickname
select r.POINTS;
points = p.First();
} catch (Exception e){
Console.WriteLine(e.Message);
}
return points;
}
p.First(); 引发的错误
System.InvalidOperationException:序列不包含任何元素
您能帮我解决这个问题吗?我还在学习 c#,我知道我进步了一点,但是我正在尝试做一些需要数据库通信的有趣的事情。
谢谢!
这个异常处理正确吗?我很高兴有关这种方式的提示。
更新:
我相信我确实配置了它,我创建了一个 LINQ to SQL CLASS 并将表拖到其中。
然后我像这样初始化上下文:
linkToSqlClassDataContext db = new linkToSqlClassDataContext(
Properties.Settings.Default.pointsGambleConnectionString);
【问题讨论】:
-
它到底是怎么不起作用的?你有什么例外?
-
您是否为 linq 类配置了数据库??
-
在您的答案中发布异常文本。最好发布 full 异常,包括调用堆栈和内部异常。这就像记录
Exception.ToString()的结果一样简单 -
您是否尝试过调试代码?如果抛出异常,调试器将停止。另外,数据库是否包含数据?
-
@user2852371 使用
FirstOrDefault()而不是First()。