【问题标题】:How to add textbox data to a database?如何将文本框数据添加到数据库?
【发布时间】:2018-01-06 14:11:59
【问题描述】:

我正在做一个学校项目,我需要将文本输入(姓名和性别)放入数据库。这个数据库(名字和性别)然后必须显示在一个列表框中。我现在的代码放在下面,我怎样才能让它工作?提前致谢!

 private void Form1_Load(object sender, EventArgs e)
    {
        using (connection = new SqlConnection(connectionString))
        using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM 
   Persoon", connection))
        {
            connection.Open();
            DataTable PersoonTable = new DataTable();
            adapter.Fill(PersoonTable);
            lb_gebruikers.DisplayMember = "Naam";
            lb_gebruikers.ValueMember = "Id";
            lb_gebruikers.DataSource = PersoonTable;
        }
    }
    private void button1_Click(object sender, EventArgs e)
    {
        string naam = tb_naam.Text;
        string geslacht = tb_geslacht.Text;



        Persoon nieuwpersoon = new Persoon(naam, geslacht);
        personen.Add(nieuwpersoon);

        foreach (var Persoon in personen)
        {
            lb_gebruikers.Items.Add("Naam: " + nieuwpersoon.Naam + 
  "Geslacht: " + nieuwpersoon.Geslacht);

        }

    }

【问题讨论】:

  • 现在让我明白了。你想将 Person 添加到数据库的 Person 表中吗?
  • @KadirKalkan 是的,我有一个名为“Person”(人)的数据库表,我有 2 个带有按钮的文本框。第一个文本框用于名称('naam'),第二个文本框用于性别('geslacht')。这两个值都需要添加到数据库中,然后显示在我的列表框中。
  • 好的,我知道了,我会在 5 分钟内用代码给出答案。
  • @KadirKalkan 好的,谢谢!
  • 你使用实体框架还是简单的sql server数据库连接还有一件事

标签: c# database winforms


【解决方案1】:

据我了解,您只需在 button1.click 和 addToList 进程之间添加一个插入。

        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = new SqlConnection("Server =.;Database=People; Integrated Security = true");
                con.Open();
                SqlCommand cmd = new SqlCommand(); // you can define commandText and connection in SqlCommand(defineArea);
                cmd.Connection = con;              // like; cmd = newSqlCommand("Insert into...",con);
                string name = txtName.Text;
                string gender = txtGender.Text;
                cmd.CommandText = "Insert into Person(Name,Gender)values('" + name + "','" + gender + "')";
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                con.Close();

                lstBxPerson.Items.Add(name + " - " + gender);
                MessageBox.Show("Save Success!");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Exception : "+ex);
            }
        }

数据库名称:人

表名:人

所有零件图片:

【讨论】:

  • 我觉得有义务指出这可能容易受到 SQL 注入的影响。但是,由于它是针对学校项目的,因此可能并不重要。 :)
  • 当我尝试添加姓名和性别时,“cmd.ExecuteNonQuery”出现错误。错误是'System.InvalidOperationException:对于 Executenonquery 是需要打开的连接。连接状态为关闭。 '我该如何解决这个问题?
  • 我修好了。我想到了 mvc,所以我在使用连接时犯了一个错误。但如果再次出错我无法尝试我可以准备一个模拟表单项目:D
  • @KadirKalkan cmd.ExecuteNonQuery 现在给出错误 'System.Data.SqlClient.SqlException: 'Invalid object name 'Person'。'
  • Person 是您的数据库表的名称。插入命令是从“Inser into Table_Name(Column1,Column2)Values(Column1'sValue,Colum2'sValue)”创建的
猜你喜欢
  • 2013-02-03
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
相关资源
最近更新 更多