我的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();
我想加载字典。
感谢您的提示。 最好的问候,丹尼尔。