你好这似乎是我的问题 我在 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 语句将值提供给数据库。
虽然您可以只添加引号,但绝对不应该这样做。变量 a
和 b
中的不良数据(无论是否是故意恶意的)都可能是严重的安全风险。千万不要这样做。
您还需要将 VALUE
更改为 VALUES
,但我只会在 移动到参数化 SQL。哦,使用 using
语句自动处理命令和连接,这样在抛出异常时就不会泄漏资源。
关于c#插入到mysql多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9830355/