从.CS文件中访问数据库记录,工作不太好

本文关键字:工作 记录 数据库 CS 文件 访问 | 更新日期: 2023-09-27 17:57:45

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

但是,我得到以下错误:

编译器错误消息:CS0120:安需要对象引用非静态字段、方法或属性'UserOperations.GetFirstName(字符串)'

这让我想到了这条线:

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>
            }

而且…:(用户操作.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#桌面应用程序中做这种事情,我不明白我是怎么做的什么我做错了?有人能帮忙吗?

谢谢!

从.CS文件中访问数据库记录,工作不太好

您没有实例化类,因此需要将其设置为静态。

public static class UserOperations 
{     
    public static string GetFirstName(string CurrentUserID)     
    { 

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

您可能需要调查存储库模式。

您的UserOperations类应类似于此

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