在asp.net中使用SQL查询中的变量(C#)
|
我有这个表单的SQL查询 string cmdText = "Select * from " + searchTable + "WHERE " + searchTable + "Name =' " + searchValue + "'"; 基本上我要做的是从数据库的Actors表中获取特定actor的信息.变量searchTable的值为’Actor’,即表名,searchValue具有actor的名称(由Actor表中的ActorName属性表示,这里我试图通过连接单词’Actor来形成属性的名称’和’姓名’) 所以,所有这些连接导致(或至少应该导致)对表单的查询: Select * from Actor where ActorName ='some actor'; 但是当我尝试运行它时,它在浏览器中给出了错误“语法不正确’=’”.有人可以帮忙吗? 解决方法您可以将(并且应该!)参数放入SQL查询中以获取例如中的值.你的WHERE子句 – 但你不能参数化你的表名之类的东西.所以我将该查询重写为: SELECT (list of columns) FROM dbo.Actor WHERE ActorName = @ActorName 然后传入@ActorName的值. 如果您需要为导演执行相同的操作,则必须进行第二次查询 SELECT (list of columns) FROM dbo.Directors WHERE DirectorName = @DirectorName 使用这样的参数 >增强安全性(禁止SQL注入攻击!) PS:您的设置中的原始问题是:在表名的第一个出现和WHERE子句之间没有任何空格 – 因此您将获得: SELECT * FROM ActorWHERE ActorName ='.....' 如果你真的坚持将你的SQL语句连接起来(我不推荐它!),那么你需要在你的表名和你的WHERE之间加一个空格! 更新:在ADO.NET中学习参数化查询的一些资源: > The C# Station ADO.NET Tutorial / Lesson 06: Adding Parameters to Commands (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何使用占位符属性与Html.EditorFor?
- asp.net-mvc – 使用Windows身份验证和OWIN的ASP.NET MVC5
- asp.net-mvc – 获取ActionName,ControllerName和AreaName,
- asp.net-mvc-3 – ASP.NET MVC3从https重定向到http
- asp.net可用性日历显示全年
- asp.net – FileUpload.hasFile始终为False
- asp.net – IIS 7在一个服务器上引发web.config的“重复部分
- asp.net-mvc-3 – 在ASP.NET MVC中本地化/翻译路由
- asp.net-mvc – 如何在ASP.NET MVC中执行辅助操作(即计算字
- asp-classic – 哪里可以存储经典ASP的连接字符串?
- ASP.NET MVC HTML Helpers是否被高估?
- asp.net-mvc-3 – ajax – 防止双击提交
- asp.net-mvc – Razor视图引擎优于其他视图引擎的
- asp.net – 覆盖webapi odata链接的主机
- 为什么ASP.NET框架在响应中添加“X-Powered-By:
- asp.net – Firefox和Chrome之间的1像素线高差
- asp.net – UserControl有IsPostBack,但是Contro
- asp.net – 会话固定 – 表单身份验证
- 如何将数组从Asp.net服务器端传递到客户端的Java
- asp.net-mvc – 将index.html设置为默认页面
