使用Prism 5(如果这很重要),我试图将一个表读入一个类但是当我运行该程序时,SQLiteDataReader Read()从未被执行(或者我认为因为它的断点永远不会被命中)。
在我的解决方案中,我有一个带有ViewModel类的ModuleA,其中的方法将更新视图中的Bindings:
public void ShowGeneral()
{
Personnel personnel = new Personnel();
personnel = PersonnelDAL.GetPersonnelRecord(Human);
pName = personnel.PersonName + " Esquire";
pAge = personnel.PersonAge;
}
PersonnelDAL.GetPersonnelRecord()位于单独的模块中。 (本模块引用了SQLite)。
public static Personnel GetPersonnelRecord(int id)
{
SQLiteConnection myDBconnection = new SQLiteConnection(SQLiteDAL.dbConnectionString);
Personnel personnel = new Personnel();
try
{
myDBconnection.Open();
string strQuery = "SELECT Person.*, Personnel.*," +
" FROM Person, Personnel WHERE Person.PersonPersonnelID = Personnel.PersonnelID AND Person.PersonID = @PersonID";
SQLiteCommand query = new SQLiteCommand(strQuery, myDBconnection);
query.Parameters.Add(new SQLiteParameter("@PersonID") { Value = id });
// A Breakpoint set here is hit
SQLiteDataReader myReader = query.ExecuteReader();
// A Breakpoint set here is never hit
while (myReader.Read())
{
personnel.PersonID = myReader.GetInt32(0);
personnel.PersonName = myReader.GetInt32(1);
personnel.PersonAge = myReader.GetInt32(3);
// etc
因此,View不显示Age的值,只显示Esquire的名称。
为什么myreader.Read()从未执行过?
答案 0 :(得分:1)
您的查询在FROM子句前面有一个错误的逗号:
string strQuery = "SELECT Person.*, Personnel.*," +
" FROM Person, Personnel WHERE ...";
你没有发布整个代码片段,但我猜你正在吞下这个例外。我不会这样做。