数据转换失败.为什么

本文关键字:为什么 失败 转换 数据 | 更新日期: 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等。您在这里所做的使您的数据库大受攻击。