как исправить «Необработанное исключение типа ‘System.Data.SqlClient.SQLException’ произошло в System.Data.dll «

#c# #vb.net

#c# #vb.net

Вопрос:

когда я запускаю код, он запускается. появится форма входа и регистрации. Но после ввода сведений при нажатии на кнопку регистрации отображается ошибка

«Необработанное исключение типа ‘system.data.sqlclient.sqlexception’ произошло в system.data.dll » и выделите con и con.open()

кодировка приведена ниже

пространство имен MovieBookingSystemCSharp { открытый частичный регистр класса: Форма { открытый регистр () { InitializeComponent(); }

     private void button1_Click(object sender, EventArgs e)
    {
        SqlConnection **con** = new SqlConnection(@"Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename=C:UsersdellDocumentsVisual Studio 2015ProjectsMovieBookingSystemCSharpMovieBookingSystemCSharpmovie.mdf;Integrated Security=True");
        **con.Open();**

        try
        {
            string str = "INSERT INTO user1(name,mobile,email,pass) VALUES('"   textBox1.Text   "','"   TextBox2.Text   "','"   TextBox3.Text   "','"   TextBox4.Text   "'); ";

            SqlCommand cmd = new SqlCommand(str, con);
            cmd.ExecuteNonQuery();

            //-------------------------------------------//

            string str1 = "select max(Id) from user1;";

            SqlCommand cmd1 = new SqlCommand(str1, con);
            SqlDataReader dr = cmd1.ExecuteReader();
            if (dr.Read())
            {
                MessageBox.Show("New User Registered Successfully..");
                Form1 obj = new Form1();
                obj.ShowDialog();
                this.Hide();
            }
        }
        catch (SqlException excep)
        {
            MessageBox.Show(excep.Message);
        }
        con.Close();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        textBox1.Text = "";
        TextBox2.Text = "";
        TextBox3.Text = "";
        TextBox4.Text = "";

    }
}
  

}

Комментарии:

1. Исключения SQL содержат гораздо больше деталей. Пожалуйста, также изучите (и опубликуйте) внутреннее исключение. Кстати, не создавайте подобные операторы, вместо этого используйте параметры оператора.

2. где мне найти внутренние исключения?

3. Это никогда не было правильным способом создания SQL в СЕТИ. Возможно, вы захотите ознакомиться с документацией или любым из десятков тысяч сообщений здесь. Как SELECT MAX() запрос сообщает вам, что пользователь был зарегистрирован?

4. Visual Studio откроет диалоговое окно, подобное этому: devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2016/… . Внизу вы увидите сведения о просмотре.

5. Начните с сообщения об исключении. Что это говорит?

Ответ №1:

Попробуйте изменить свойство «AttachDbFilename» без пробелов в пути, как показано ниже.

 SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename=C:Userstestuser1Documentsvs2015ProjectsMovieBookingSystemCSharpMovieBookingSystemCSharpmovie.mdf;Integrated Security=True");
  

Комментарии:

1. Изменение пути к файлу базы данных поможет? Действительно?