Вставьте данные в SQL Server, используя C # - PullRequest
0 голосов
/ 05 мая 2019

У меня проблема со вставкой данных в SQL Server.

Я пытаюсь добавить данные, используя C #, в свою базу данных SQL Server с этим кодом:

private void button1_Click(object sender, EventArgs e)
{
    con = new SqlConnection("Data Source=DEMO;Initial Catalog=Shipping;Integrated Security=True");
    con.Open();

    cmd = new SqlCommand(
@"INSERT INTO SailorForm 
(  firstName,
   lastName,
   nationallity,
   age,
   gender,
   address,
   deckRank,
   engineRank,
   electricalRank,
   contractdate,
   contractType,
   shipname,
   durationoftour,
   country/port,
   healthissues,
   durationoftour2,
   shiptype,
   Certificateslicenses,
   WorkExperience,
   idnumber
) 
VALUES 
(  @firstName,
   @lastName,
   @nationallity,
   @age,
   @gender,
   @address,
   @deckRank,
   @engineRank,
   @electricalRank,
   @contractdate,
   @contractType,
   @shipname,
   @durationoftour,
   @country/port,
   @healthissues,
   @durationoftour2,
   @shiptype,
   @Certificateslicenses,
   @WorkExperience,
   @idnumber )", con); 

    cmd.Parameters.Add("@firstname", textBox1.Text);
    cmd.Parameters.Add("@lastname", textBox2.Text);
    cmd.Parameters.Add("@nationallity", textBox3.Text);
    cmd.Parameters.AddWithValue("@age", textBox5.Text);
    cmd.Parameters.Add("@gender", radioButton1.Text);
    cmd.Parameters.Add("@address", textBox4.Text);
    cmd.Parameters.Add("@deckrank", comboBox1.SelectedItem.ToString());
    cmd.Parameters.Add("@enginerank", comboBox2.SelectedItem.ToString());
    cmd.Parameters.Add("@electricalRank", comboBox3.SelectedItem.ToString());
    cmd.Parameters.Add("@contractdate", dateTimePicker1.MaxDate);
    cmd.Parameters.Add("@contractType", radioButton3.Text);
    cmd.Parameters.Add("@shipname", textBox6.Text);
    cmd.Parameters.Add("@durationoftour", dateTimePicker2.MaxDate);
    cmd.Parameters.Add("@country/port", textBox11.Text);
    cmd.Parameters.Add("@healthissues", textBox13);
    cmd.Parameters.Add("@durationoftour2", dateTimePicker3.MaxDate);
    cmd.Parameters.Add("@shiptype", comboBox4.SelectedItem.ToString());
    cmd.Parameters.Add("@Certificateslicenses", textBox14.Text);
    cmd.Parameters.Add("@WorkExperience", textBox15);
    cmd.Parameters.Add("@idnumber", textBox7.Text);

    cmd.ExecuteNonQuery();
}

1 Ответ

0 голосов
/ 05 мая 2019

Добро пожаловать в S / O, не позволяйте другим заставлять вас чувствовать себя плохо. все мы должны были учиться в то или иное время, и у всех были не очень хорошие вопросы. Вы сделали хорошую первую попытку. Вы предоставили пример кода на соединение, вставьте команду и параметризацию. Все это было хорошо.

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

Пара предложений. При разработке форм присваивайте элементам управления более подходящие имена, чем textBox1, textBox2 и т. Д., CheckBox1 и т. Д. Я уверен, что пример для изучения, но затем, глядя на код, вы получите правильный код.

С полями с датой / временем убедитесь, что вы сохраняете их в качестве этого типа данных, не пытайтесь изменить какое-либо строковое значение, так как фильтрация даты будет более болезненной.

Еще одно предложение, старайтесь не создавать таблицы или имена столбцов с тем, что МОЖЕТ быть зарезервированными словами. Может быть запутанным позже в разработке. Если у вас есть столбец Дата. Вы имеете в виду дату (как в какой-то функции в языке SQL)? или TransactionDate - более явный. Вы скоро выучите общие команды. Просто немного пищи для размышлений, пока вы учитесь.

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