DataReader 从不进入 Read()
DataReader never enters Read()
使用 Prism 5(如果重要的话),我正在尝试将 table 读入 class 但是当我 运行 程序时,SQLiteDataReader Read() 永远不会执行(或者我认为因为它的断点永远不会被击中)。
在我的解决方案中,我有一个带有 ViewModel class 的 ModuleA,其方法将更新视图中的绑定:
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
因此,视图不显示年龄值,只显示 Esquire 名称。
为什么 myreader.Read() 从未执行过?
您的查询在 FROM 子句前有一个错误的逗号:
string strQuery = "SELECT Person.*, Personnel.*," +
" FROM Person, Personnel WHERE ...";
您没有 post 整个代码片段,但我猜您正在吞下异常。我不会那样做的。
使用 Prism 5(如果重要的话),我正在尝试将 table 读入 class 但是当我 运行 程序时,SQLiteDataReader Read() 永远不会执行(或者我认为因为它的断点永远不会被击中)。
在我的解决方案中,我有一个带有 ViewModel class 的 ModuleA,其方法将更新视图中的绑定:
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
因此,视图不显示年龄值,只显示 Esquire 名称。
为什么 myreader.Read() 从未执行过?
您的查询在 FROM 子句前有一个错误的逗号:
string strQuery = "SELECT Person.*, Personnel.*," +
" FROM Person, Personnel WHERE ...";
您没有 post 整个代码片段,但我猜您正在吞下异常。我不会那样做的。