我有类型不匹配的问题-我认为。我有与数据库连接并发送查询的应用程序。这就是它的工作方式:
string wartosc1 = "'letters'";
NpgsqlCommand command9 = new NpgsqlCommand("SELECT * FROM RESOURCES WHERE TYPE = "+wartosc1, conn);
但是当我尝试执行它时,有答案:
System.FormatException: Input string was not in correct format.
我想变量类型有问题,因为当我刚输入时:
SELECT * FROM RESOURCES WHERE TYPE ='letters'
一切都好。
有任何想法吗?
因为当你写的时候
"SELECT * FROM RESOURCES WHERE TYPE = " + wartosc1
您的命令将像;
SELECT * FROM RESOURCES WHERE TYPE = letters
这是错误的,因为我想您的TYPE
列是某种文本类型。如果您通过简单的方法解决此问题,则可以wartosc1
在单引号内添加变量,例如;
"SELECT * FROM RESOURCES WHERE TYPE = '" + wartosc1 + "'"
您应该始终parameterized queries
在命令中使用。它可以防止,忘记使用一些引号,逗号等。但是更重要的是,这种字符串连接方式容易受到SQL Injection
攻击。
string wartosc1 = "letters";
NpgsqlCommand command9 = new NpgsqlCommand("SELECT * FROM RESOURCES WHERE TYPE = @type", conn);
command9.Parameters.AddWithValue("@type", wartosc1);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句