我有一个包含三列的表格; 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/