Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从.CS文件中访问数据库记录,效果不太好_C#_.net_Methods_Razor - Fatal编程技术网

C# 从.CS文件中访问数据库记录,效果不太好

C# 从.CS文件中访问数据库记录,效果不太好,c#,.net,methods,razor,C#,.net,Methods,Razor,我需要做一些db的事情,我宁愿在一个单独的文件中有扩展方法,而不是将它们全部放在cshtml文件中 但是,我得到了以下错误: 编译器错误消息:CS0120:An 对象的引用是必需的 非静态字段、方法或属性 'UserOperations.GetFirstNamestring' 这让我想到了这一行: Line 165: <li><a href="@Href("myaccount/account.cshtml")">Hi, @UserOpera

我需要做一些db的事情,我宁愿在一个单独的文件中有扩展方法,而不是将它们全部放在cshtml文件中

但是,我得到了以下错误:

编译器错误消息:CS0120:An 对象的引用是必需的 非静态字段、方法或属性 'UserOperations.GetFirstNamestring'

这让我想到了这一行:

Line 165:                 <li><a href="@Href("myaccount/account.cshtml")">Hi, @UserOperations.GetFirstName(WebSecurity.CurrentUserId)</a></li>
我使用的代码是:CSHTML

@if(WebSecurity.IsAuthenticated)
                {
                  <li><a href="@Href("myaccount/account.cshtml")">Hi, @UserOperations.GetFirstName(WebSecurity.CurrentUserId.ToString())</a></li>
                }
                else
                {
                    <li><a href="@Href("myaccount/Login.cshtml")">My Account</a>

                <ul>
                  <li><a href="@Href("myaccount/Login.cshtml")">Sign In</a></li>
                    <li><a href="@Href("myaccount/Register.cshtml")" title="It's FREE!">Create Account</a></li>
                </ul>
              </li>
            }
和…:UserOperations.CS

using System;
using WebMatrix.WebData;
using WebMatrix.Data;
using System.Collections.Generic;
using System.Web;

/// <summary>
/// User & Database-based operations in this file only.
/// </summary>
public class UserOperations
{
    public string GetFirstName(string CurrentUserID)
    {
        WebSecurity.InitializeDatabaseConnection("eee", "www", "www", "www", true);
        var database = Database.Open("OSF");
        var SelectQueryString = "SELECT FirstName FROM UserProfile WHERE FirstName = " + CurrentUserID;
        var result = database.Query(SelectQueryString);
        return result.ToString();
    }
}
我不明白错误想说什么。我总是在C桌面应用程序中做这类事情,我不明白我是怎么做的,或者我做错了什么?有人能帮忙吗


谢谢大家!

您没有实例化该类,因此需要创建它

但更典型的是,您将拥有一个用户类,您将在控制器中创建该类的实例,并将其传递给您的模型。这将帮助您避免对所需的每一条信息进行谨慎的查询

您可能需要调查。

您的UserOperations类应该如下所示

public static class UserOperations
{
    public static string GetFirstName(this string CurrentUserID)
    { 
      ...
    }
}

哎呀。谢谢你指出这一点;我忘了实例化它。来吧您需要在类中使用变量。因为这似乎是一个网站,你需要在正确的范围内创建变量。Chillax伙计,前几天我才开始使用Razor/WebMatrix
public static class UserOperations
{
    public static string GetFirstName(this string CurrentUserID)
    { 
      ...
    }
}