c#插入到mysql多个变量

标签 c# mysql

你好这似乎是我的问题 我在 mysql 中有一个表,并且在尝试插入时正在制作一个 c# 应用程序,我得到一个你的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“OIL COMPANY)”附近使用的正确语法,这是我的 companyVal。它将插入一个值和所有其他值的默认值,但我添加第二个值时出错

        string ConnectionString2 = ConfigurationSettings.AppSettings["ConnectionString2"];
        MySqlConnection connection2;
        connection2 = new MySqlConnection(ConnectionString2);
        connection2.Open();
        MySqlCommand command = new MySqlCommand("INSERT INTO spt_proposal     (lab_Prop_Id,customer_Name) VALUE (" + a + "," + companyVal + ")", connection2);
        command.ExecuteNonQuery();
        connection2.Close();

布伦特

最佳答案

不要这样做开始:

// I split the line
MySqlCommand command =
    new MySqlCommand("INSERT INTO spt_proposal lab_Prop_Id,customer_Name) "
        "VALUE (" + a + "," + companyVal + ")", connection2);

这会打开你 SQL injection attacks ,以及通过混合代码和数据使您的代码更难理解,并导致潜在的转换问题(尤其是日期和时间)。

相反,使用参数化 SQL 语句将值提供给数据库。

虽然您可以只添加引号,但绝对不应该这样做。变量 ab 中的不良数据(无论是否是故意恶意的)都可能是严重的安全风险。千万不要这样做。

需要将 VALUE 更改为 VALUES,但我只会在 移动到参数化 SQL。哦,使用 using 语句自动处理命令和连接,这样在抛出异常时就不会泄漏资源。

关于c#插入到mysql多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9830355/

相关文章:

c# - Gridview 删除选中的行

mysql - 在这种情况下递归是最佳解决方案吗?

php - MySQL 和 PHP 数据库?

mysql - sqlite3 的迁移中断,但在 mysql2 中运行

mysql - 事务是否像大查询?

c# - 解决方案的单个配置文件

c# - 如何在 C# 控制台(Windows 窗体)应用程序中使用 WinRT 组件?

c# - c#中高效的后缀数组算法

c# - 如何将两个版本的相同程序集从两个不同的子文件夹加载到两个不同的域中?

php - 数据库查询、检查和设置数组