草庐IT

CREATED_BY

全部标签

c# - 防止 ORDER BY 子句中的 SQL 注入(inject)

在我们的数据库访问层中,我们有一些动态查询创建。例如,我们有以下方法来构建ORDERBY子句的一部分:protectedstringBuildSortString(stringsortColumn,stringsortDirection,stringdefaultColumn){if(String.IsNullOrEmpty(sortColumn)){returndefaultColumn;}returnString.Format("{0}{1}",sortColumn,sortDirection);}问题是,sortColumn和sortDirection都是来自外部的字符串,所以当

c# - GUID 是否及时订购?如果 ORDER BY 与 GUID 变量类型一起使用,最近创建的记录是否会延迟?

GUID是否及时订购?我的意思是,如果您将ORDERBY与GUID变量类型一起使用,最近创建的记录会延迟吗? 最佳答案 在Windows上,GUID(UUID)是使用UuidCreate从加密随机数生成器创建的。根据RFC4122,它们是版本4UUID。不涉及时间戳或以太网卡,除非您使用的是使用UuidCreateSequential创建的旧学校版本1GUID。另见HowRandomisSystem.Guid.NewGuid()?(Taketwo)来源:https://stackoverflow.com/a/3011149/1714

c# - 如何在 Linq to SQL 中使用 distinct 和 group by

我正在尝试将以下sql转换为Linq2SQL:selectgroupId,count(distinct(userId))fromprocessroundissueinstancegroupbygroupId这是我的代码:varq=fromiinProcessRoundIssueInstancegroupibyi.GroupIDintogselectnew{Key=g.Key,Count=g.Select(x=>x.UserID).Distinct().Count()};当我运行代码时,我不断收到无效的GroupID。有任何想法吗?似乎distinct把事情搞砸了..这里是生成的sql:

c# - VB.NET linq group by 匿名类型不能按预期工作

我正在研究LINQPad附带的一些linq示例。在“C#3.0inaNutshell”文件夹中的Chater9-Grouping下,有一个名为“GroupingbyMultipleKeys”的示例查询。它包含以下查询:fromninnew[]{"Tom","Dick","Harry","Mary","Jay"}.AsQueryable()groupnbynew{FirstLetter=n[0],Length=n.Length}我将字符串“Jon”添加到数组的末尾以获得实际分组,并得出以下结果:这正是我所期待的。然后,在LINQPad中,我转到同一查询的VB.NET版本:'Manuall

c# - 在 Dynamic Linq Order By 上保留 NULL 行

我正在使用下面的代码片段来动态排序我的Linq查询并且效果很好。我不擅长反射或复杂的linq查询,但我需要一种方法,当使用升序时,NULL值在最后,反之亦然。因此,如果我的属性名称是一个整数并且列值是1、3、5,则默认情况下所有NULL行都将位于末尾,而不是开头。我可以向这个表达式添加什么来实现它?此代码适用于EntityFramework,但仍需要进行NULL比较。示例list.OrderBy("NAMEDESC").ToList()类publicstaticclassOrderByHelper{publicstaticIOrderedQueryableThenBy(thisIEnu

c# - Youtube 数据 API : Retrieving multiple Video entries by IDs in a single request

我想知道是否有办法在YouTube上查询多个随机单个查询中的视频(视频ID已知)?我将视频ID存储在本地数据库中,需要显示多个网页中的详细信息(带有拇指、评分、作者姓名等的列表)。我正在查看Youtube数据API,发现我可以像这样的实体数据:UrivideoEntryUrl=newUri("http://gdata.youtube.com/feeds/api/videos/video_id");Videovideo=request.Retrieve(videoEntryUrl);在循环中重复这个似乎是个坏主意,因为配额。还有“批处理”可用——http://code.google.co

c# - 林克到 SQL : Sort Query by Arbitrary Property(Column) Name

我有一个更大/更复杂的问题,但为了简单起见,让我们考虑以下问题:假设我在SQL数据库中有一个名为Product的表,它有两列,ID(int,primary键)和名称(varchar/string)。我还有一个简单的LINQDataContext。我构造了一个查询并将其交给“我的”函数。让我们假设它是这样的:(虽然它可能有点复杂)IQueryablequery=frompindb.Productsselectp;一旦我的方法得到这个查询,作为参数传入,它必须更改排序顺序,例如IQueryablesortedQuery=query.OrderBy(x=>x.Name);我想让它更通用,即指

c# - Entity Framework : Efficiently grouping by month

我对此做了一些研究,到目前为止我发现的最好的方法是在整个数据集上使用Asenumerable,以便在对象的linq中而不是在数据库中进行过滤。我使用的是最新的EF。我的工作(但非常慢)代码是:vartrendData=fromdinExpenseItemsViewableDirect.AsEnumerable()groupdbynew{Period=d.Er_Approved_Date.Year.ToString()+"-"+d.Er_Approved_Date.Month.ToString("00")}intogselectnew{Period=g.Key.Period,Total=

c# - 电子邮件删除附件后,错误 "The process cannot access the file because it is being used by another process."

我正在做一个电子邮件表单。电子邮件有附件,并在附加文件后发送电子邮件。接下来需要从服务器删除文件。当我试图获取文件时,它给了我主题错误。我什至在删除文件之前调用了GC.Collect(),但错误仍然存​​在。我删除文件的代码是:privatevoidDeleteFiles(DataTabledt){GC.Collect();String[]sAttachments=newString[dt.Rows.Count];try{sAttachments=newString[dt.Rows.Count];for(Int32J=0;J要将文件附加到电子邮件,我的代码是:oMess.Subject

c# - 为什么 C# LINQ 表达式必须以 Select 或 Group By 子句结尾,而在 VB.Net 中没有这样的限制

由于我的标题是不言自明的,我知道如何纠正它,但首先为什么会这样?场景我写了一个VB.Net代码DimlistAsList(OfString)=NewList(OfString)//CodetopopulatelistDimwherelinqAsIEnumerable(OfString)=FromsInlistWheres.StartsWith("A")这工作正常,没有错误但在C#中同样的逻辑失败了Listlist=newList();//CodetopopulatelistIEnumerablewherelinq=fromsinlistwheres.StartsWith("A");这给