我已经尽力使用此代码在 MySql 服务器上插入数据:
private void button1_Click(object sender, EventArgs e)
{
string con = "datasource=localhost;database=test;port=3307;username=root;password=root";
MySqlConnection sq = new MySqlConnection(con);
sq.Open();
try
{
MySqlCommand com1 = new MySqlCommand("Insert into customerinfo(ID) values('" + textBox1.Text + "')", sq);
com1.ExecuteNonQuery();
//sq.Open();
}
catch (Exception ex)
{
MessageBox.Show("please, enter an ID with at most 3 characters !");
}
try
{
MySqlCommand com2 = new MySqlCommand("Insert into customerinfo(OwnerName) values('" + textBox6.Text + "')", sq);
com2.ExecuteNonQuery();
//sq.Open();
}
catch (Exception ex)
{
MessageBox.Show("please, enter a name with at most 30 characters !");
}
}
第一次尝试括号执行得很好,但第二次尝试时,它抛出异常!请帮助我知道为什么会发生这种情况?
最佳答案
90% 确定您的“ID”字段是必需的,因此您不能只发送 id...顺便说一句,您似乎正在插入 2 行,而不是包含两个值的单行...您可能是尝试做:
MySqlCommand com1 = new MySqlCommand("Insert into customerinfo(ID, OwnerName) values('" + textBox1.Text + "', '" + textBox6.Text + "')", sq);
这里有一些额外的提示:
- 在
using
语句中打开连接,以便确保正确处理和关闭连接内存处置。 - 同意添加动态查询可能会导致您的应用程序遭受
SQL 注入(inject)
(您可能想要研究的整个主题)。因此,只需确保在客户端和服务器端添加大量验证、拥有存储过程或将此插入更改为 ORM 化即可。
希望这有帮助
关于c# - 使用 Visual C# 插入 MySql 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40644566/