Использование c#, sqlite
Моя база данных состоит из JobApplicantsDB (PK) и FamilyParticulars (FK). Я вернулся к своему коду через несколько недель, и появилась ошибка «такая таблица не появилась», хотя в прошлый раз она работала так, как задумано.
System.Data.SQLite.SQLiteException
HResult=0x800007BF
Message=SQL logic error
no such table: JobApplicantsDB
Source=System.Data.SQLite
Я много раз подтверждал, что файл БД помещен inside C: \ Users \ Tim \ source \ repos \ JobApplication \ JobApplication \ bin \ Отладка с использованием файла типа db, а не базы данных sqlite. Проблема заключается в том, что, несмотря на появление ошибки, данные по-прежнему вставляются в таблицу JobApplicantsDB, но не в таблицу FamilyParticulars (которая является внешним ключом вышеупомянутой таблицы). Я что-то упустил, чего не заметил? MAX (P1ID) вставляется в таблицу FamilyParticulars для более легкого удаления в дальнейшем.
private SQLiteConnection sql_con;
private SQLiteCommand sql_cmd;
private void SetConnection()
{
sql_con = new SQLiteConnection
("Data Source = C:/Users/Tim/source/repos/JobApplication/JobApplication/bin/Debug/JobApplicants;Version=3;New=False;Compress=True;");
}
private void ExecuteQuery(string txtQuery)
{
SetConnection();
sql_con.Open();
sql_cmd = sql_con.CreateCommand();
sql_cmd.CommandText = txtQuery;
sql_cmd.ExecuteNonQuery();
sql_con.Close();
}
private void Submitbutton_Click(object sender, EventArgs e) //save applicants' questionnaire
{
sql_con = new SQLiteConnection
("Data Source = JobApplicants;Version=3;New=False;Compress=True;");
sql_con.Open();
string txtQueryP1 = "insert into JobApplicantsDB (P1PosApp, P1FTPT, P1Name, P1DOB) values " +
"('" + PositionAppliedtxt.Text + "', '" + FTPTCB.Text + "', '" + Nametxt.Text + "', '" + DOBdateTimePicker.Text + "')";
ExecuteQuery(txtQueryP1);
sql_con = new SQLiteConnection
("Data Source = JobApplicants;Version=3;New=False;Compress=True;");
sql_con.Open();
string txtQueryMAX = "select MAX(P1ID) from JobApplicantsDB";
SQLiteCommand cmd = new SQLiteCommand(txtQueryMAX, sql_con);
int id = Convert.ToInt32(cmd.ExecuteScalar());
string txtQueryP2b = "insert into FamilyParticulars(P2ID, P2FamName,P2FamRelationship,P2FamNationality,P2FamDOB,P2FamOccupation,P2FamCompany) values(" + id + ",'" + FamNametxt1.Text + "','" + FamRelationshipCB1.Text + "','" + FamNationalitytxt1.Text + "','" + FamDOBdateTimePicker1.Text + "','" + FamOcctxt1.Text + "', '" + FamCompanytxt1.Text + "')";
ExecuteQuery(txtQueryP2b);
}