MySql表示对于非空的列,Column不能为null![使用命名参数]

Cyr*_*pta 4 c# mysql sql database

我试图通过MySql/.NEt连接器使用.Net执行INSERT INTO查询.该查询使用参数.这很简单:

INSERT INTO post (
ID, content, post_url, blogID, title, addedOn, 
updatedDate, commentsFeedURL, active, viewCount, 
commentCount, languageID, authorName, postDate, 
posRating, negRating, adult) 
VALUES(
@ID, @content, @post_url, @blogID, @title, @addedOn, 
@updatedDate, @commentsFeedURL, @active, @viewCount, 
@commentCount, @languageID, @authorName, @postDate, 
@posRating, @negRating, @adult)
Run Code Online (Sandbox Code Playgroud)

当我运行它(所有参数都正确分配)我得到一个错误

"列'post_url'不能为空"

但它不是空的.这是参数post_url中的值

http://abcd.wordpress.com/2007/08/13/%e0%a4%a6%e0%a5%8b-%e0%a4%ae%e0%a4%bf%e0%a4%a8%e0% A4%9f-%E0%A4%95%E 0%A4%是 - %的e0%A4%A7%E0%±5%8D%E0%A4%AF%E0%A4%是%E0%A4%A8 /

这是我用来将参数分配给SQL Query的代码

cmd.Parameters.AddWithValue("post_url", postOld.URL);
Run Code Online (Sandbox Code Playgroud)

可能是我得到这种行为的原因是什么?

Cyr*_*pta 7

好的伙计,我终于找到了正确的答案.

问题很简单,在MySQL查询参数中标有'?' 不是'@'.不幸的是,许多查询似乎运行良好(他们不是)使用'@',所以当遇到麻烦时,人们会发现这一点.

谢谢你的所有答案.我重写了这样的查询:

INSERT INTO post (ID, content, post_url, blogID, title, addedOn, updatedDate, commentsFeedURL, active, viewCount, commentCount, languageID, authorName, postDate, posRating, negRating, adult)" +
                            " VALUES(?ID, ?content, ?post_url, ?blogID, ?title, ?addedOn, ?updatedDate, ?commentsFeedURL, ?active, ?viewCount, ?commentCount, ?languageID, ?authorName, ?postDate, ?posRating, ?negRating, ?adult)
Run Code Online (Sandbox Code Playgroud)

它起作用了.