Невозможно вставить элемент из выпадающего меню в мою базу данных - PullRequest
0 голосов
/ 07 апреля 2020

Я новичок в C# и пытаюсь вставить некоторые значения в свою базу данных, которую я создал в Visual Studio.

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

Когда я нажимаю кнопку, я могу добавить все (все текстовые поля) в базу данных, кроме раскрывающегося значения.

Вот код внутри кнопки_click

       private void addItemButton_Click(object sender, EventArgs e)
    {

        string dat = "Insert into [Table](Title,Category,Ingredients,Description) Values('" + titleTextBox.Text + "','" + dropdownCategory.SelectedValue + "','" + addIngredientTextBox.Text + "','" + addDescriptionTextBox.Text + "')";
        SqlConnection sqlCon = new SqlConnection(connectionString);
        SqlCommand sqlCmd = new SqlCommand(dat, sqlCon);
        sqlCon.Open();
        sqlCmd.ExecuteNonQuery();
        sqlCon.Close();
    }

Ответы [ 3 ]

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

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

  public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string dat = string.Format("Insert into [Sample](Title,Category,Ingredients,Description)values('{0}','{1}','{2}','{3}')", textBox1.Text, comboBox1.SelectedItem,textBox2.Text,textBox3.Text);
            string connectionString = @"connectionstring";
            SqlConnection sqlCon = new SqlConnection(connectionString);
            SqlCommand sqlCmd = new SqlCommand(dat, sqlCon);
            sqlCon.Open();
            sqlCmd.ExecuteNonQuery();
            sqlCon.Close();
            MessageBox.Show("success");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.AddRange(new object[] { "basketball","football", "volleyball" });

        }
    }
0 голосов
/ 07 апреля 2020

Хорошо, я не знаю, правильно это или нет, но это сработало на меня.

Я изменил

dropdownCategory.SelectedValue

на

dropdownCategory.Text

и все заработало.

0 голосов
/ 07 апреля 2020

Я бы попробовал посмотреть содержимое строки dat. Он может содержать недопустимые данные, если «dropdownCategory.SelectedValue» возвращает то, что вы не ожидаете.

Кроме этого, порядок методов Open (), ExecuteNonQuery () и Close () может быть неправильным. Попробуйте прочитать документы по этим методам.

Другая вещь, на которую вы должны обратить внимание, это возвращаемое сообщение об ошибке (если оно есть). Они обычно довольно информативны.

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