C# &引用;需要对象引用才能访问非静态字段“;
我的WCF服务实现中有这段代码,我得到了这个错误 : 如何正确更新用户的位置?代码如下:C# &引用;需要对象引用才能访问非静态字段“;,c#,sql,linq,wcf,C#,Sql,Linq,Wcf,我的WCF服务实现中有这段代码,我得到了这个错误 : 如何正确更新用户的位置?代码如下: public void UpdateLocation(string usrName, double usrLong, double usrLat) { var result = (from usr in DataClasses1DataContext.Users where usr.usrName == usrN
public void UpdateLocation(string usrName, double usrLong, double usrLat)
{
var result = (from usr in DataClasses1DataContext.Users
where usr.usrName == usrName
select usr).Single();
result.usrLong = usrLong;
result.usrLat = usrLat;
DataClasses1DataContext.SubmitChanges();}
错误消息告诉您所有您需要知道的信息,
Users
属性不是静态的,但您正在按原样调用它。您需要一个DataClasses1DataContext
的实例来从以下位置调用属性:
using(DataClasses1DataContext context = new DataClasses1DataContext())
{
var result = (from usr in context.Users
where usr.usrName == usrName
select usr).Single();
}
正如伊恩提到的
public void UpdateLocation(string usrName, double usrLong, double usrLat)
{
using(DataClasses1DataContext Usercontext = new DataClasses1DataContext())
{
var result = (from usr in Usercontext.Users where usr.usrName == usrName select usr).Single();
result.usrLong = usrLong;
result.usrLat = usrLat;
Usercontext.SubmitChanges();
}
}
投反对票的人!尽管Ian的答案是正确的,OP还是通过创建一个user实例对他的答案添加了一条评论,让他明白我添加了这个答案!
public void UpdateLocation(string usrName, double usrLong, double usrLat)
{
using(DataClasses1DataContext Usercontext = new DataClasses1DataContext())
{
var result = (from usr in Usercontext.Users where usr.usrName == usrName select usr).Single();
result.usrLong = usrLong;
result.usrLat = usrLat;
Usercontext.SubmitChanges();
}
}