Member 13049972 Ответов: 1

База данных Sql не обновляется


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

Что я уже пробовал:

public void update(MOduleQuestion moduleq)
        {
            string mcode = moduleq.getModuleCode();
            int QNo = moduleq.getQuestionNo();
            string Question = moduleq.getQuestion();
            string OPt1 = moduleq.getOP1();
            string OPt2 = moduleq.getOP2();
            string OPt3 = moduleq.getOP3();
            string OPt4 = moduleq.getOP4();
            string Answer = moduleq.getAnswer();


            try
            {
                //string sql = "Update Module_Question SET Question='" + Question + "',Option1='" + OPt1 + "',Option2='" + OPt2 + "',Option3='" + OPt3 + "',Option4='" + OPt4 + "' WHERE MQ_Module_Code = '" + mcode + "' AND MQ_Module_No= '" + QNo + "' ";
                string sql = "Update Module_Question SET Question = @question, OPt1 = @opt1, OPt2 = @opt2, OPt3 =  @opt3, OPt4 = @opt4, Answer = @answer WHERE MQ_Module_Code = @mcode and  MQ_Question_No  = @qno";
                SqlCommand cmd = new SqlCommand(sql, m_con);
                cmd.CommandType = System.Data.CommandType.Text;
                cmd.Parameters.AddWithValue("@mcode", mcode);
                cmd.Parameters.AddWithValue("@qno", QNo);
                cmd.Parameters.AddWithValue("@question", Question);
                cmd.Parameters.AddWithValue("@opt1", OPt1);
                cmd.Parameters.AddWithValue("@opt2", OPt2);
                cmd.Parameters.AddWithValue("@opt3", OPt3);
                cmd.Parameters.AddWithValue("@opt4", OPt4);
                cmd.Parameters.AddWithValue("@answer", Answer);

                //SqlCommand cmd = new SqlCommand(sql, m_con);
                m_con.Open();
                cmd.ExecuteNonQuery();
                MessageBox.Show("Question Record Updated Successfully", "lecture Reg System", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (SqlException)
            {
                MessageBox.Show("Cannot Update", "lecture Reg System", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
            finally
            {
                m_con.Close(); // connection close


            }
        }

[no name]

Вы хотите добавить значение AddWithValue для ваших параметров

CHill60

Да , этого достаточно.

Member 13049972

поэтому я должен ввести AddWithValue Module_Question SET Question =.... врать это?

[no name]

Нет.... cmd. параметры.AddWithValue ("@mcode", mcode);

Вы можете многому научиться, читая документацию, просто говоря.

Karthik_Mahalingam

вы получаете какую-нибудь ошибку?

Member 13049972

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

Karthik_Mahalingam

я имею в виду, вы получаете какую-нибудь ошибку?

Member 13049972

это дает исключение catch

Karthik_Mahalingam

проверьте это то, что вы получаете
catch (SqlException ex)
{
функции MessageBox.выставка(экс.Сообщение )

Member 13049972

catch (SqlException)
{
Ящик для сообщений.Show ("не удается обновить"," лекция Reg System", MessageBoxButtons.Хорошо, MessageBoxIcon.Информация);

}
им становится не окно сообщения, обновить

Karthik_Mahalingam

catch (SqlException ex)
{
Ящик для сообщений.Показать (например, сообщение);

}

теперь проверить

Member 13049972

Да! это работает :), не могли бы вы объяснить мне, что произошло ?

Karthik_Mahalingam

хорошо, что это за сообщение об ошибке?

Member 13049972

никаких сообщений об ошибках теперь он работает

1 Ответов

Рейтинг:
7

Member 13049972

//Update a lecture
        public void update(MOduleQuestion moduleq)
        {
            string mcode = moduleq.getModuleCode();
            int QNo = moduleq.getQuestionNo();
            string Question = moduleq.getQuestion();
            string OPt1 = moduleq.getOP1();
            string OPt2 = moduleq.getOP2();
            string OPt3 = moduleq.getOP3();
            string OPt4 = moduleq.getOP4();
            string Answer = moduleq.getAnswer();


            try
            {
                //string sql = "Update Module_Question SET Question='" + Question + "',Option1='" + OPt1 + "',Option2='" + OPt2 + "',Option3='" + OPt3 + "',Option4='" + OPt4 + "' WHERE MQ_Module_Code = '" + mcode + "' AND MQ_Module_No= '" + QNo + "' ";
                string sql = "Update Module_Question SET Question = @question, Option1 = @opt1, Option2 = @opt2, Option3 =  @opt3, Option4 = @opt4, Answer = @answer WHERE MQ_Module_Code = @mcode and  MQ_Question_No  = @qno";
                SqlCommand cmd = new SqlCommand(sql, m_con);
                cmd.CommandType = System.Data.CommandType.Text;
                cmd.Parameters.AddWithValue("@mcode", mcode);
                cmd.Parameters.AddWithValue("@qno", QNo);
                cmd.Parameters.AddWithValue("@question", Question);
                cmd.Parameters.AddWithValue("@opt1", OPt1);
                cmd.Parameters.AddWithValue("@opt2", OPt2);
                cmd.Parameters.AddWithValue("@opt3", OPt3);
                cmd.Parameters.AddWithValue("@opt4", OPt4);
                cmd.Parameters.AddWithValue("@answer", Answer);

                //SqlCommand cmd = new SqlCommand(sql, m_con);
                m_con.Open();
                cmd.ExecuteNonQuery();
                MessageBox.Show("Question Record Updated Successfully", "lecture Reg System", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);

            }
            finally
            {
                m_con.Close(); // connection close


            }
        }


Member 13049972

Это решение я создал после помощи @Karthik Bangalore