繁体   English   中英

使用 C# 向 SQL 服务器插入数据

[英]Insert data into SQL Server using C#

我在将数据插入 SQL 服务器时遇到问题。

我正在尝试使用以下代码将使用 C# 的数据添加到我的 SQL 服务器数据库中:

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();
}

欢迎来到S/O,不要让别人让你难过。 我们所有人都不得不在某个时候学习,并且都遇到过不太好的问题。 你做了一个很好的第一次尝试。 您提供了有关连接、插入命令和参数化的示例代码。 这些都是好事。

现在您将了解有关验证数据以确保您不会在表中放置意外垃圾的更多信息。

几个建议。 在设计您的 forms 时,为控件分配比 textBox1、textBox2 等、checkBox1 等更好的名称...我确定要学习的示例,但随后查看代码可确保您拥有正确的代码。

对于带有日期/时间的字段,请确保将它们保留为该数据类型,不要尝试更改为某些字符串值,因为日期过滤会更麻烦。

另一个建议,尽量不要创建带有保留字的表或列名。 在以后的开发中可能会造成混淆。 如果您有日期列。 您是指日期(如 SQL 语言中的某些 function)吗? 或 TransactionDate - 更明确。 您很快就会学会常用命令。 在你学习的时候只是一些精神食粮。

private void BtnSub_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=DESKTOP-QAE607I;Initial Catalog=DBList;Integrated Security=True");
            string sql = "insert into [user](name,number,username,password)values('"+textBox1.Text+"',"+textBox2.Text+",'"+textBox3.Text+"','"+textBox4.Text+"')";
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            int countTable = cmd.ExecuteNonQuery();
            if (countTable > 0)
            {
                MessageBox.Show("succesfull");
                ViewData();
            }
            else
            {
                MessageBox.Show("error");
            }
            
            con.Close();
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM