我有一个asp.net Web应用程序,需要一个搜索页面来搜索特定表(SQL)中的数据.今天它只有一个简单的LIKE查询,使用参数化的sql:
SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter("@searchText", SqlDbType.VarChar);
param[0].Value = "%" + text + "%";
using (SqlDataReader dr = SqlHelper.ExecuteReader(this.ConnectionString, CommandType.StoredProcedure, "isp_Search", param))
{
//Do something
}
Run Code Online (Sandbox Code Playgroud)
现在我需要添加选项以使用逻辑运算符进行搜索.
因此,在文本框中,用户可能会搜索类似的内容
Adam OR Adams
James AND NOT Jame
Douglas AND (Adam OR Adams)
Run Code Online (Sandbox Code Playgroud)
向表中添加全文索引不是首选选项,因为我不控制数据模型.
我正在寻找一种解释文本查询并转换为具有适当数量的SqlParams的SQL语句的方法.
searchexpression = "Douglas AND (Adam OR Adams)"
MakeSearchQuery(searchexpression, out sqlquery, out SqlParam[] params)
Run Code Online (Sandbox Code Playgroud)
会有类似的回报
sqlquery = "SELECT someFields FROM table WHERE someField=@Param1 AND (someField=@Param2 OR someField=@Param3)"
Run Code Online (Sandbox Code Playgroud)
和sqlParams一样
sqlParam[0] = 'Douglas'
sqlParam[1] = 'Adam' …Run Code Online (Sandbox Code Playgroud) 我将数字与不同的小数位对齐,以便小数符号在直线上对齐.这可以通过填充空格来实现,但我遇到了麻烦.
Lays说我想对齐以下数字:0 0.0002 0.531 2.42 12.5 123.0 123172
这是我追求的结果:
0
0.0002
0.531
2.42
12.5
123.0
123172
Run Code Online (Sandbox Code Playgroud) 我有一个SQL效率问题.这涉及挪威国家彩票.他们画了七个数字和三个奖金球.
我有一个包含所有图纸和大量门票的数据库.问题是什么是最有效的桌面结构以及在平局中获得所有中奖彩票的方式.
这是我的两个主要表格:
LotteryDraw
DrawId (int, PK)
DrawDate (datetime)
MainNumbers (varchar)
BonusNumbers (varchar)
Main1 (smallint)
Main2 (smallint)
Main3 (smallint)
Main4 (smallint)
Main5 (smallint)
Main6 (smallint)
Main7 (smallint)
Bonus1 (smallint)
Bonus2 (smallint)
Bonus3 (smallint)
Run Code Online (Sandbox Code Playgroud)
我将每个主要号码和奖励号码分别存储,并以排序顺序存储逗号分隔的字符串.
我有类似的:
LotteryTicket
TicketId (int, PK)
UserId (int, FK)
ValidTill (datetime)
MainNumbers (varchar)
Main1 (smallint)
Main2 (smallint)
Main3 (smallint)
Main4 (smallint)
Main5 (smallint)
Main6 (smallint)
Main7 (smallint)
Run Code Online (Sandbox Code Playgroud)
您可以获得4 + 1,5,6,6 + 1和7个正确数字的奖品(正确的主数字+奖金数字).任何人都有任何关于如何编写高效SQL的好主意,这些SQL将返回所有LotteryTickets并获得抽奖日期的奖金?ValidTill是票证有效的最后抽奖日期.
我目前的尝试是在C#中使用Linq2Sql并且具有冰上河马的速度,所以我真的需要一些SQL专业知识.
如果重要,服务器是Microsoft SQL Server 2008 R2.
更新:在调整了Mark B的答案后,我最终得到了以下查询.我需要通过添加一个新的表LotteryTicketNumber(ticketid,number)来规范化数据库.
SELECT LotteryTicket.TicketID, count(LotteryTicket.Numbers) AS MainBalls, (
SELECT …Run Code Online (Sandbox Code Playgroud) 我的自动缩放 Azure 网站上有一个持续运行的 WebJob。
我的 WebJob 是一个简单的控制台应用程序,带有 while(true) 循环,用于订阅 Azure 服务总线上的某些消息并处理它们。我不想处理同一条消息两次,因此当网站缩放时,另一个 WebJob 启动,我需要它检测到另一个实例已经在运行,然后坐在那里什么都不做,直到它被杀死(通过缩小规模)再次)或者另一个实例被杀死。在最后一个场景中,第二个 WebJob 应该检测到另一个 WebJob 不再接管。
有接受者吗?
我有一个看似很直接的问题,但我找不到一个干净简单的解决方案.
我有一些自由格式化的文字.此文本可能很长,包含各种长度(> 120个字符),段落和空行的行.
我需要以固定格式呈现此文本(例如,120行字符行和25行行页面).但保持原始格式在段落和空行.
分页符不应该在单词的中间.理想情况下,应该放置一个分页符,以便我们避免页面底部的新段落的单行,而是将整个段落移动到下一页等.
简化示例(输入文本):
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec at magna at tellus vehicula eleifend. Vivamus at est erat. Phasellus eget tincidunt tellus. Integer ultrices dolor a magna congue imperdiet.
Duis est sem, aliquet id fermentum sed, mollis nec metus. Phasellus porttitor porttitor sodales. Aliquam tincidunt convallis massa, sed tempus erat ornare in. Sed scelerisque, lorem accumsan imperdiet accumsan, mauris turpis molestie augue, vehicula egestas tellus quam ac nulla.
In porta augue ac dolor …Run Code Online (Sandbox Code Playgroud)