c# - 字段列表错误中的MySql未知列

标签 c# mysql sql-insert insert-update

我有一个 mysql 未知列错误 1054。我无法在我的数据库表中插入 我的插入函数

    public void Insert(string tablename ,string[] values, string[] columns)
        {
            string col = "(";
            for (int x = 0; x < columns.Length; x++)
            {
                if (columns[x] == columns.Last())
                    col += columns[x];
                else
                if (columns.Length > 1)
                    col += columns[x] + ",";
            }
            col += ")";
            string val =  "VALUES"+"(";
            for (int x = 0; x < values.Length; x++)
            {
                if (values[x] == values.Last())
                    val += values[x];
                else
                if (values.Length > 1)
                    val += values[x] + ",";
            }
            val += ")";
            string query = "INSERT INTO "+ tablename + col + val ;

我的查询:从函数返回。

"INSERT INTO rezervationinformations(Fullname,Phone,Description)VALUES(dsa,cq,q)"

调用函数:

    db.Insert("rezervationinformations",  new string[] { textBox1.Text, textBox2.Text,
 textBox3.Text }, new string[] { "Fullname", "Phone", "Description" });

最佳答案

您试图实现的目标非常糟糕,不仅会导致错误,还会将您的数据库暴露给 SQL 注入(inject)。

忘掉这个无用的函数,使用带参数化查询的 Vanilla ADO.NET

或者您始终可以使用 ORM,例如 Entity Framework

关于c# - 字段列表错误中的MySql未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41232410/

相关文章:

php - Laravel Eloquent 创建于

sql - ORA-01840 : input value not long enough for date format in Oracle Insert using Select

c# - 从列表中生成列表中每个条目位置的字典?

c# - DirectorySeparatorChar 和 AltDirectorySeparatorChar 有什么区别

c# - 如何编写 LINQ 查询来获取过去 7 天内的内容?

mysql - 具有多个 IF 语句的 ON DUPLICATE KEY UPDATE

c# - 如何使用异步谓词过滤列表

php - PDO:是否需要 try-catch?

mysql - 在 MySQL 的一个查询中,如果表中存在记录,则插入记录或更新记录

mysql - 根据另一个表的条件插入 sql 语句