使用可视化 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 [关闭]

如何使用 C# 在 MYSQL 中插入和检索图像

使用c#在两个日期之间插入mysql数据

c# 操作mysql数据库的时候会出现 插入中文汉字变成问号?

如何在 C# 中将插入的行捕获到一个巨大的表中? [关闭]

C# mysql 使用 Byte[] 将文件插入数据库