使用可视化 C# 插入 MySql 服务器 [关闭]
Posted
技术标签:
【中文标题】使用可视化 C# 插入 MySql 服务器 [关闭]【英文标题】:Insert in MySql server with visual C# [closed] 【发布时间】:2016-11-17 00:04:44 【问题描述】:我已经非常努力地使用此代码在 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 !");
第一次尝试括号执行得很好,但第二次尝试时,它会抛出异常!请帮助我知道为什么会这样?
【问题讨论】:
它会抛出哪个异常? 不要使用字符串连接来生成 SQL! (***.com/questions/28473476/…) 它还可以帮助您避免可能的语法错误。 去掉try catch
可以加快调试速度。
【参考方案1】:
90% 确定您的“ID”字段是必需的,因此您不能只发送 id...顺便说一句,您似乎插入了 2 行,而不是带有两个值的单行...您可能是尝试做:
MySqlCommand com1 = new MySqlCommand("Insert into customerinfo(ID, OwnerName) values('" + textBox1.Text + "', '" + textBox6.Text + "')", sq);
这里有一些额外的提示:
在using
语句中打开您的连接,以确保正确处理和关闭连接内存。
同意添加动态查询可能会导致您的应用程序暴露于SQL injection
(您可能想要研究的整个主题)。因此,请确保您在客户端和服务器端都添加了大量验证,有一个存储过程,或者将此插入更改为 ORMified。
希望对你有帮助
【讨论】:
以上是关于使用可视化 C# 插入 MySql 服务器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
C# - MySQL 与 Microsoft SQL Server [关闭]