2012-09-04 152 views
0

http://www.codeproject.com/Articles/11178/Writing-SQL-queries-in-XML-A-support-intensive-app编写SQL查询

ASP.NET - Storing SQL Queries in Global Resource File?

我想要做的事,如上面的链接...但它不是为我工作..

我已经在我的项目动态SQL我想要移动到XML。有人可以帮忙吗?

+0

你想在这里解决什么问题?为什么移动一些有效的东西你能否详细说明你使用的数据库和版本? – Oded

+0

从BOOKING WHERE BOOKINGDATE选择BookingID> = {0} ...我想在xml中查询,数据库是teradata ...他们不想创建sp ...我必须在asp.net中创建动态查询...但他们建议我在xml中使用查询.... – user1546173

+0

请_edit_添加详细信息的问题 - 不要在评论中发布(既因为你松散的格式,也因为人们不太可能阅读评论)。 – Oded

回答

2

我真的很希望你说你要存储“从预订选择BookingID WHERE BOOKINGDATE> = {0}”并不意味着你的写作计划:

String.Format(query, parameter) 

这是一个巨大的安全漏洞。

编辑:

如果你真的想要走这条路线我建议的Xml这样的:

<queries> 
    <query id="getBookingId"> 
    <parameters> 
     <parameter name="bookingDate" /> 
    </parameters> 
    <statement> 
     <!-- 
      SELECT BookingID from BOOKING WHERE BOOKINGDATE >= @bookingDate 
     --> 
    </statement> 
    </query> 
</queries> 

然后你就可以有一个类:

[XmlElement("query")] 
public sealed class Query 
{ 
    [XmlAttribute("id")] 
    public string Id { get; set; } 

    // other elements/collections 
} 

然后,您可以反序列化你的Xml到这些Query对象的集合中。我建议这样做一次,并将其存储在某个IDictionary中,以避免重复处理一个Xml文件。

然后,您可以在每个Query对象中获得所需的所有内容。参数集合和sql语句 - 请注意,在使用之前,您必须手动从注释中去除注释字符()。再次,最好在开始时做一次。

+0

+1虽然OP已经有动态SQL ... – podiluska

+0

那么,我应该如何解决我的问题?我应该在哪里保存我的动态查询? – user1546173