Строка подключения не работает - не разрешено подключение к базе данных, выполненное в VS (C# Visual Studio) - PullRequest
0 голосов
/ 24 апреля 2020

В настоящее время я работаю над созданием трекера посещаемости, который будет принимать входные данные пользователя и добавлять их в таблицу базы данных. Я столкнулся с проблемой, когда моя строка подключения не будет подключаться к базе данных? Я скопировал его прямо как есть, и даже попробовал несколько разных уроков с альтернативными способами, но безуспешно. Это для задания, однако, наша часть SQL была довольно маленькой, и я не уверен, где отсюда go. Пожалуйста, дайте мне знать, если что-то в моем коде необходимо пересмотреть.

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

Я также заметил, что мое соединение с базой данных часто отключается, если я не обновлю sh, это часто встречается?

namespace AttendanceTracker
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void signInButton_Click(object sender, EventArgs e)
    {
        string connectionString = null;
        connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB; AttachDbFilename = C:\Users\soupy\Desktop\AttendanceTracker\AttendanceTrackerDatabase.mdf; Integrated Security = SSPI";
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;

        cmd.CommandText = ("INSERT into AttendanceTrackerDatabase VALUES (@studentName,@studentID,@Date,@class)");

        cmd.Parameters.AddWithValue("@Student_Name", nameTextBox.Text);
        cmd.Parameters.AddWithValue("@Student_ID", studentIDTextBox.Text);
        cmd.Parameters.AddWithValue("@Class", classDropDown.Text);
        cmd.Parameters.AddWithValue("@Date", attendanceDate.Value);

        try
        {
            con.Open();
            cmd.ExecuteNonQuery();
            MessageBox.Show("Your sign in has been recorded successfully!");
            con.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Unable to open attendance tracker for updating.");
        }
    }

1 Ответ

1 голос
/ 24 апреля 2020

При использовании Parameter objects необходимо убедиться, что имена переменных совпадают.

Пожалуйста, измените ваш код следующим образом

cmd.CommandText = ("INSERT into AttendanceTrackerDatabase VALUES (@studentName,@studentID,@Date,@class)");

cmd.Parameters.AddWithValue("@studentName", nameTextBox.Text); // Modified to "studentName"
cmd.Parameters.AddWithValue("@studentID", studentIDTextBox.Text); // Modified to "studentID"
cmd.Parameters.AddWithValue("@Date", attendanceDate.Value);
cmd.Parameters.AddWithValue("@class", classDropDown.Text); // Modified to "class"
...