SQLite测试是否存在记录

时间:2014-10-06 19:15:30

标签: sqlite validation select testing

我正在努力测试我的SQLite数据库中是否有特定数据。

该方法接受主题代码,人员ID和表名。我百分百肯定这3件事是正确的。

这应该做的是尝试选择一条记录。如果可以选择记录则返回-1,否则返回0。

我的问题是当数据库中有记录时,datareader似乎没有读取任何记录。

public int TestIfExists(string subID, string personID, string table)
{
  _sqlConnection = new SQLiteConnection(_conStr);
  bool dataRead = false;
  int rc = 0;
  try
  { 
    string selectQuery = "SELECT * FROM " + table + " WHERE PersonID = '" + 
                         personID + "' AND SubjectCode = '" + subID + "'";
    _sqlConnection.Open();
    SQLiteCommand sqlCommand = new SQLiteCommand(selectQuery, _sqlConnection);
    IDataReader idr = sqlCommand.ExecuteReader();
    dataRead = idr.Read();
    if (dataRead == true)
    {
      rc = -1;
    }//end if   
    else
    {
      rc = 0;     
    }//end else
    idr.Close(); // Closed IDataReader
  }//end try
  catch (SQLiteException sqlEx) // Catch SQLiteException
  { 
    MessageBox.Show(sqlEx.ToString());
    throw new DataStoreError(sqlEx.Message);
  }//end catch
  catch (Exception ex)
  { 
    throw ex;
  }//end catch
  finally
  { 
    _sqlConnection.Close();
  }//end finally
  return rc; //Single return
}

1 个答案:

答案 0 :(得分:0)

当你试图查看它是否存在时,你可以做一个 SELECT Count(*) FROM Table WHERE (...)
这种方式0意味着不存在,其他方面是肯定的。