我收到一个奇怪的问题与子串。很显然,我得到的字符串由于某种奇怪的原因无法投射到Int32中。我尝试这样做时出现的错误消息是“输入字符串格式不正确”。因此,我不能将这些值插入到数据库中。铸造子字符串整数奇怪的问题
下面的代码...
string width = GetMetadata(filename, 162); //returns "1280 pixels"
string height = GetMetadata(filename, 164); //returns "700 pixels"
width = width.Substring(0, width.IndexOf(' ')); //returns "1280"
height = height.Substring(0, height.IndexOf(' ')); //returns "700"
//test: "System.Convert.ToInt32(width)" will fail, giving error "input string was not in correct format"
//doing the above on "width" yields the same result
//fails, giving error "no such column: 1280" (underlying database is sqlite)
Database.NonQuery("INSERT INTO image VALUES (" + fileid + ", " + width + ", " + height + ")");
你已经在那里放了一个断点,并绝对验证了'GetMetadata()'返回的值是你期望的吗?没有多余的空间?没有标签或其他不正确的空格?由于值“1280像素”和“700像素”,该代码工作正常。 – Carson63000 2011-06-08 06:42:47
@Carson:是的,评论中的值正是我所得到的。如果情况并非如此,我会仔细检查并回复。 – rafale 2011-06-08 06:45:57
首先 - 在使用数据库时更好地使用参数。开发机器上的当前文化是什么? – vityanya 2011-06-08 06:49:41