C#Dictionary为null

时间:2016-09-26 05:30:56

标签: c# wpf dictionary mvvm

我的Visual Studio中的Observable集合几乎没有问题。我正在从数据库做字典。数据库位于Oracle Server上。我想用数据填充我的集合,但null显示,我不知道我做错了什么。

这是我的存储库:

 public static Dictionary<string, Term> GetDictionary()
    {
        InventoryAccountingRepository repo = new InventoryAccountingRepository();
        return GetDictionary();
    }

以下是我对语言的查询:

 public Dictionary<string, Term> GetDictionary()
    {
        using (OracleConnection myConn = new OracleConnection(oracleConnectionString))
        {
            Dictionary<string, Term> dict = new Dictionary<string, Term>();

            myConn.Open();
            OracleCommand cmd = new OracleCommand(GetQueryStringForLanguage(), myConn);

            OracleDataReader reader = cmd.ExecuteReader();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    dict.Add(reader["T_ID"] != DBNull.Value ? Convert.ToString(reader["T_ID"]) : "", new Term()
                    {
                        cz = reader["CZ"] != DBNull.Value ? Convert.ToString(reader["CZ"]) : "",
                        en = reader["EN"] != DBNull.Value ? Convert.ToString(reader["EN"]) : ""
                    });

                }

            }

            return dict;

        }
    }

    /// <summary>
    /// Select all language from TERM Table.
    /// </summary>
    /// <returns></returns>
    private string GetQueryStringForLanguage()
    {
        string queryString = string.Empty;
        queryString = string.Format(@"SELECT T_ID,CZ,EN
                                         FROM TERMS
                                         ORDER BY T_ID");

        return queryString;
    }

对于这个项目,我使用MVVM模式。

在我的app.cs中,我想把这本词典初步化。

 public Dictionary<string, Term> Dictionary { get; set; }

        public App()
        {
            ShowLoginWindow();
            Dictionary = DataRepositoryServices.GetDictionary();
        }

我还为术语创建了getter setter。这是。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InventoryAccounting.BussinesEntities
{
    public class Term
    {
        public string cz { get; set; }
        public string en { get; set; }
    }
}

null值在此行中:Dictionary = DataRepositoryServices.GetDictionary();

我想加载字典。

感谢您的提示。 最好的问候,丹尼尔。

0 个答案:

没有答案