繁体   English   中英

更新/添加表中的行

[英]Updating/adding Rows in a table

我有一个包含三列的表。 身份证,姓氏和名字

我正在尝试做的是创建一个可以添加新行的按钮,另一个按钮来更新此表的现有联系人。 我认为我非常接近,但有些东西行不通。 我有一个可以正常工作的删除方法,但是我尝试执行更新方法的方法基本上是删除联系人,然后添加一个新联系人。 它正在做的是删除联系人,然后不添加其他任何内容。

这是我的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();

暂无
暂无

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

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