数据转换失败.为什么
本文关键字:为什么 失败 转换 数据 | 更新日期: 2023-09-27 17:52:13
你好,我最近在我的Asp中遇到了一个问题。Net c# 4应用程序。我从地址得到值,然后把它们放入数据库。但是框架给我"数据转换失败。[OLE DB状态值(如果已知)= 2]"错误。"下面是我的代码:
var db = Database.Open("StarterSite");
var insert = db.Execute("INSERT INTO Downloads (ID, Name, Url, Size) VALUES ('@1', '@2', '@3', '@4')", Convert.ToInt32(Request.QueryString["fileid"]), Request.QueryString["name"], Request.QueryString["url"], Request.QueryString["size"]);
, ID 是 int 和名称、网址、大小是 ntext 。请帮帮我。谢谢!
Database helper接受的参数标记必须从0
开始var db = Database.Open("StarterSite");
var insert = db.Execute("INSERT INTO Downloads (ID, Name, Url, Size) VALUES (@0, @1, @2, @3)", Request["fileid"], Request["name"], Request["url"], Request["size"]);
如果ID
列是整数,则不要将值括在引号中:
'@1'
应为@1
注意:这里有一个SQL注入漏洞。永远不要在这样的查询中直接使用查询字符串输入(或表单输入,或任何用户输入)。查看参数化查询、orm等。您在这里所做的使您的数据库大受攻击。