c# - 更新/添加表中的行

标签 c# mysql visual-studio

我有一个包含三列的表格; ID、姓氏和名字

我想做的是创建一个可以添加新行的按钮,以及另一个将现有联系人更新到此表的按钮。我想我已经很接近了,但有些东西不起作用。我有一种工作正常的删除方法,但我尝试执行更新方法的方式基本上是删除联系人,然后添加一个新联系人。它所做的就是删除联系人,然后不添加任何其他内容。

这是我的 addContact 方法

        public int addContact(Contacts newContact)
    {

        MySqlConnection conn = null;
        if (newContact != null)
        {
            try
            {
                conn = new MySqlConnection();
                conn.Open();

                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = "insert into contacts (id, surname, last_name) values (@id, @surname, @firstName)";

                cmd.Prepare();

                cmd.Parameters.AddWithValue("@id", newContact.contactID);
                cmd.Parameters.AddWithValue("@surname", newContact.surname);
                cmd.Parameters.AddWithValue("@firstName", newContact.first_name);
                cmd.ExecuteNonQuery();

                return (int)cmd.LastInsertedId;
            }
            catch (MySqlException ex)
            {
                Console.WriteLine("Error: {0}", ex.ToString());

            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }

            }

        }
        return -1;
    }

我认为主要问题是我的方法不正确。这是应该更新列表框中选择的当前联系人的按钮。

        private void button2_Click(object sender, EventArgs e)
    {
        Contacts currentContact = (Contacts)listBox1.SelectedItem;
        contactMan.removeContact(currentContact.contactID);
        Contacts testInsertContact = new Contacts();

        testInsertContact.surname = textBox2.Text;
        testInsertContact.first_name = textBox3.Text;
        testInsertContact.contactID = contactMan.addContact(testInsertContact);
        reloadContacts();
    }

感谢任何帮助,谢谢

<小时/>

好吧,我通过创建一个新项目并基本上重写相同的代码来修复它。不知道为什么,但问题是它没有正确连接到数据库,但无论出于何种原因它现在都可以工作。

最佳答案

cmd.CommandText = "insert into contacts (id, surname, last_name) values (@id, @surname, @firstName)";

将此行写在前面

cmd.ExecuteNonQuery();

关于c# - 更新/添加表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967647/

相关文章:

c# - 如何在 C# 中验证 URL 以避免 404 错误?

mysql - 使用 while 循环通过存储过程进行批量更新

mysql - 许多表之一的外键?

c# - 我可以制作一个属性抑制警告吗?

visual-studio - TFS 托管构建 Controller 发送电子邮件警报

c# - 我如何在 C# 中通过 newton 解析非常嵌套的 json?

c# - foreach 中的多项选择到 LINQ

mysql - 如何在sql参数中使用WHERE ID

c# - 如何使用 Visual Studio 扩展创建绿色(或蓝色)波浪形装饰

c# - 单击按钮时显示数据网格