Данные не вставляются из переключателей в базу данных SQL из c # - PullRequest
0 голосов
/ 24 октября 2019

Hy Всем! Я пытаюсь добавить некоторые значения да / нет в мою базу данных sql с помощью некоторых переключателей и флажков. когда я нажимаю кнопку вставки, она не показывает никакой ошибки, но также не вставляет данные в таблицу. У меня есть класс DBConn, который имеет следующий код:

class DBConn
    {
        DataSet ds;
        int c;
        SqlConnection sqlconn;
        SqlCommand sqlcmd;
        public static string connectionString = @"Data Source=user-PC;Initial Catalog=RecruitmentProject;Integrated Security=True";

        public bool IUD(String query)
        {
            try
            {
                sqlconn = new SqlConnection();
                sqlconn.ConnectionString = connectionString;
                sqlconn.Open();
                sqlcmd = sqlconn.CreateCommand();
                sqlcmd.CommandText = query;
                c = sqlcmd.ExecuteNonQuery();
                sqlconn.Close();
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message);
            }
            if (c > 0)
                return true;
            else
                return false;
        }


Ниже приведен мой код для вставки:

public void ins_Skills()
        {
            String cnic = txtCNIC.Text;
            String added = lblLoginID.Text;

            string query = "Insert INTO ComputerSkills_Table (cnic,ComputerSkills,MSOffice,MSWord,MSExcell,MSPpt,MSAccess,Typing,EnglishType,UrduType,Networking,Programming,[Database],AddedBy) VALUES (@cnic, @ComputerSkills, @MSOffice, @MSWord, @MSExcell, @MSPpt, @MSAccess, @Typing, @EnglishType, @UrduType, @Networking, @Programming, @db, @AddedBy)";
        SqlCommand cmd = new SqlCommand(query, conn);

        //Pass values to Parameters
        if(cmbComp.Text != "No")
        {
            cmd.Parameters.AddWithValue("@cnic", txtCNIC.Text);
            cmd.Parameters.AddWithValue("@ComputerSkills", rbComp.Text);
            cmd.Parameters.AddWithValue("@MSOffice", rbOffice.Text);
            cmd.Parameters.AddWithValue("@MSWord", rbWord.Text);
            cmd.Parameters.AddWithValue("@MSExcell", rbExcell.Text);
            cmd.Parameters.AddWithValue("@MSPpt", rbPpt.Text);
            cmd.Parameters.AddWithValue("@MSAccess", rbAccess.Text);
            cmd.Parameters.AddWithValue("@Typing", rbTyping.Text);
            cmd.Parameters.AddWithValue("@EnglishType", rbEngType.Text);
            cmd.Parameters.AddWithValue("@UrduType", rbUrduType.Text);
            cmd.Parameters.AddWithValue("@Networking", rbNetwork.Text);
            cmd.Parameters.AddWithValue("@Programming", rbProgram.Text);
            cmd.Parameters.AddWithValue("@db", rbDB.Text);
            cmd.Parameters.AddWithValue("@AddedBy", lblLoginID.Text);
        }

        else if(cmbComp.Text == "No")
        {
            cmd.Parameters.AddWithValue("@cnic", txtCNIC.Text);
            cmd.Parameters.AddWithValue("@ComputerSkills", "No");
            cmd.Parameters.AddWithValue("@MSOffice", "No");
            cmd.Parameters.AddWithValue("@MSWord", "No");
            cmd.Parameters.AddWithValue("@MSExcell", "No");
            cmd.Parameters.AddWithValue("@MSPpt", "No");
            cmd.Parameters.AddWithValue("@MSAccess", "No");
            cmd.Parameters.AddWithValue("@Typing", "No");
            cmd.Parameters.AddWithValue("@EnglishType", "No");
            cmd.Parameters.AddWithValue("@UrduType", "No");
            cmd.Parameters.AddWithValue("@Networking", "No");
            cmd.Parameters.AddWithValue("@Programming", "No");
            cmd.Parameters.AddWithValue("@db", "No");
            cmd.Parameters.AddWithValue("@AddedBy", lblLoginID.Text);
        }


        try
        {
            conn.Open();
            Console.WriteLine(query);
            cmd.ExecuteNonQuery();
            MessageBox.Show("Records inserted");
            //q = db.IUD(query); //DBConn Function Call
        } // try

        catch (SqlException ex)
        {
            MessageBox.Show("Records not inserted", ex.StackTrace);
        } // catch
        finally
        {
            conn.Close();
        }

теперь он не показывает вставленные данные в окне сообщения и не делаетон показывает не вставленное окно сообщения, как будто запрос не передается или не вызывается. кто-то может помочь?


РЕДАКТИРОВАТЬ: я прошел через это снова и понял, что функция не вызывается, когда радиокнопка Да была отмечена в предыдущей форме. теперь он показывает окно сообщения «Данные вставлены», но когда я проверяю таблицу, значения вообще не вставляются.
код для получения значения от радиокнопки:

private void rbNetwork_CheckedChanged(object sender, EventArgs e)
        {
            network = rbNetwork.Text;
        }

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


РЕДАКТИРОВАТЬ: (2) Я снова отладил свой код, как рекомендовано здесь некоторыми друзьями, и это исключение, которое я получаю:

Первое случайное исключение типа 'System.Data.SqlClient.SqlException' произошло в системе. Data.dll

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