System.Format异常

时间:2015-02-17 14:37:30

标签: c# string exception

我编写的程序因为这段代码而抛出异常:

queryString = String.Format("INSERT INTO Playlists (PlaylistID, PlaylistName, PlaylistCreator) VALUES ('{0}', '{1]', '{2}');", CurrentPlaylistID, playlistInfo[1], playlistInfo[0]);

所有变量都是字符串。在这之后我也有一个类似的String.Format它可以正常工作。还有3个变量,都是字符串。

无法找到解决此错误的方法,它表示格式化错误,但为什么?

希望你能帮助我

3 个答案:

答案 0 :(得分:7)

不要修复异常 - 停止构建像这样的SQL来开始。 (例外情况是由于Pheonyx建议的拼写错误,但只是解决了这个问题。)

而是使用参数化SQL,并将值指定为参数值。否则:

  • 您要离开SQL Injection Attacks
  • 您的代码难以阅读
  • 您可以轻松地结束转换问题,尤其是日期

请参阅SqlCommand.Parameters的文档以获取更多详细信息 - 我们无法确定您要定位的数据库为您提供更具体的帮助,但通常您会在上面找到名为Parameters的属性相关的命令类。

答案 1 :(得分:4)

你有一个错字

'{1]'

应该是

'{1}'

(注意不同的括号)

答案 2 :(得分:2)

必须

 VALUES ('{0}', '{1}', '{2}')