我正在努力测试我的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
}
答案 0 :(得分:0)
当你试图查看它是否存在时,你可以做一个
SELECT Count(*) FROM Table WHERE (...)
这种方式0意味着不存在,其他方面是肯定的。