值不能为null-如何获取数据库表的所有条目

本文关键字:数据库 获取 null- 不能 何获取 | 更新日期: 2023-09-27 18:20:05

我只是试图在Visual Studio中输出数据库表中的所有条目,并得到以下错误:

异常详细信息:System.ArgumentNullException:值不能为null

我确信数据库的名称是正确的,也有条目,因为Insert方法工作得很好。

可能存在解析问题,或者我必须更改web.config中的某些内容吗?

这是我的密码。希望有人能帮我:

我的型号:

[TableName("kb_Chat_Message")]
[PrimaryKey("id", autoIncrement = true)]
public class ChatMessage
{
    public static string TABLE_NAME = "kb_Chat_Message";
    public static string ROW_ID = "id";
    public static string MESSAGE = "message";
    public static string GROUP = "group";
    public static string ROW_TIME = "timestamp";
    public int id { get; set; }
    public string group { get; set; }
    public string message { get; set; }
    public DateTime timestamp { get; set; } 
    public ChatMessage(string message, string groupName, DateTime time) {
        this.message = message;
        this.group = groupName;
        this.timestamp = time;
    }
}

我的存储库:

 public class ChatRepository
{
    private readonly UmbracoDatabase _database;
    public ChatRepository()
    {
        _database = ApplicationContext.Current.DatabaseContext.Database;
    }
    public IList<ChatMessage> GetAll()
    {
        // === Next line throws System.ArgumentNullException ===
        return _database.Fetch<ChatMessage>("SELECT * FROM " + ChatMessage.TABLE_NAME);
    }
    public void Insert(ChatMessage message)
    {
        _database.Insert(message);
    }
}

我的集线器:

var chatrepo = new ChatRepository();
foreach (var msg in chatrepo.GetAll())
{
    System.Diagnostics.Debug.WriteLine(msg.message);   
}

我的数据库看起来像:名为"kb_Chat_Message"的数据库

值不能为null-如何获取数据库表的所有条目

那么也许你应该试试这个

public IList<ChatMessage> GetAll()
    {
        var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString();
        ChatMessage _chatMessage = new ChatMessage();
        IList<ChatMessage> _all_chatMessages = new List<ChatMessage>();
        using (SqlConnection myConnection = new SqlConnection(con))
        {
            string oString = "Select * from kb_Chat_Message";
            SqlCommand oCmd = new SqlCommand(oString, myConnection);         
            myConnection.Open();
            using (SqlDataReader oReader = oCmd.ExecuteReader())
            {
                while (oReader.Read())
                {    
                 _chatMessages.RequiredField = oReader["RequiredFieldname"].ToString();                     
         _all_chatMessages.Add(_chatMessage)
                }
                myConnection.Close();
            }               
          }
        return _all_chatMessages;
       }

让我知道。。。