插入mysql数据库

时间:2010-08-11 10:31:03

标签: c#

我正试图像这样在数据库中插入一个值:

command.CommandText = "INSERT INTO mail('" + s2[0] + "') values" + "('" + s2[1] + "')";

s2 [0]包含字段的名称,而s2 [1]包含该值。 我想提一下,s2 [0]中包含的字符串与表中字段的名称完全匹配。

什么似乎是问题?

PS:如果表中没有匹配s2 [0]的字段,我也想知道抛出异常。

2 个答案:

答案 0 :(得分:1)

你试图用叛逆者来引用这个字段的名称。不要这样做 - 它不是一个值,它是SQL本身的一部分。您还缺少“值”与值集合的左括号之间的空格。这可能会也可能不会引起问题 - 不确定。例如,目前您的插入可能类似于:

INSERT INTO mail('name') values('jon')

而不是

INSERT INTO mail(name) values ('jon')

您还应该使用参数化查询来避免SQL注入攻击。这对于字段名称来说很难做到,但你绝对应该为这个值做。希望字段名称不是来自用户开始的。

答案 1 :(得分:1)

在邮件

之后从字符串中删除额外的'
command.CommandText = "INSERT INTO mail(" + s2[0] + ") values" + "('" + s2[1] + "')";

尝试使用带有sqlParameter

的sql命令