C# свойство тега не работает с моим запросом - PullRequest
0 голосов
/ 06 января 2020

Использование c# и sqlite

Я пытаюсь обновить текстовое поле EduInstitCoutnrytxt1, когда я нажимаю на сетку данных, изменяю значение и затем нажимаю кнопку обновления. Мне было рекомендовано использовать запрос на обновление ниже, но при его запуске я получаю ошибку «SQL logi c error near« then »: синтаксическая ошибка». Довольно чертовски расплывчато.

 private void Editbutton_Click(object sender, EventArgs e) //edits by name so cant change name
 {
    string txtQuery21 = "update EducationProfile set P3InstituteCountry = (case EpID when " + EduInstitCountrytxt1.Tag + " then '" + EduInstitCountrytxt1.Text + "' when " + EduInstitCountrytxt2.Tag + " then '" + EduInstitCountrytxt2.Text + "' when " + EduInstitCountrytxt3.Tag + " then '" + EduInstitCountrytxt3.Text + "' when " + EduInstitCountrytxt4.Tag + " then '" + EduInstitCountrytxt4.Text + "' end) ";

    ExecuteQuery(txtQuery21);

Затем я обнаружил, что, возможно, тег является нулевым, что может вызвать появление этой ошибки. Поэтому я установил теги в событии dgv click пустыми вместо нуля, поэтому по умолчанию он должен быть пустым.

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
   EduInstitCountrytxt1.Tag = "";
   EduInstitCountrytxt2.Tag = "";
   EduInstitCountrytxt3.Tag = "";
   EduInstitCountrytxt4.Tag = "";
               ...
   string CommandTextedu = "select ep.P3ID, ep.P3InstituteCountry, ep.P3From, ep.P3To, ep.P3Qualifications, ep.P3FTPT, ep.EPID from JADB A left join EducationProfile ep on a.P1ID = ep.P3ID where a.P1ID = " + dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
   DBedu = new SQLiteDataAdapter(CommandTextedu, sql_con);
   DTedu.Clear();
   DBedu.Fill(DTedu);

   int j = 1;
   foreach (DataRow dr in DTedu.Rows)
        {
            switch (j)
            {
                case 1:
                    EduInstitCountrytxt1.Tag = dr[6].ToString();
                    EduFromProfdateTimePicker1.Tag = dr[6].ToString();
                    EduToProfdateTimePicker1.Tag = dr[6].ToString();
                    EduQualificationstxt1.Tag = dr[6].ToString();
                    EduFTPTProfCB1.Tag = dr[6].ToString();

                    EduInstitCountrytxt1.Text = dr[1].ToString();
                    EduFromProfdateTimePicker1.Text = dr[2].ToString();
                    EduToProfdateTimePicker1.Text = dr[3].ToString();
                    EduQualificationstxt1.Text = dr[4].ToString();
                    EduFTPTProfCB1.Text = dr[5].ToString();
                    break;
//more cases
            }
            j++;
        }

Но все равно появляется та же ошибка. Я попытался проверить, был ли EduInstitCountrytxt1.Tag нулевым, и, с помощью окна сообщений, EduInstitCountrytxt1.Tag был нулевым, прежде чем я нажал на dgv, но имел значение после того, как я нажал на dgv, как я и предполагал, он должен работать. Я что-то упускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...