我试图找到最快的方法来查找父表中没有子表中的某些记录的所有记录.例如,我希望查询返回所有没有男孩或根本没有孩子的家庭记录.
这很痛苦:
SELECT*FROM Families
WHERE Families.FamilyID NOT IN(选择FamilyID FROM Children WHERE Children.Gender ="m")
这更快:
SELECT*FROM Families
WHERE NOT EXISTS(SELECT*FROM Children WHERE Children.Gender ="m"AND Children.FamilyID = Families.FamilyID)
这是最快的,但我担心投资它,因为我找不到任何文件.我甚至不知道它叫什么.由于缺少更好的术语,我们一直称之为"匿名查询".
SELECT*FROM Families
LEFT JOIN
[SELECT*FROM Children WHERE Gender ="m"].AS AliasChildren ON Families.FamilyID = AliasChildren.FamilyID
WHERE AliasChildren.FamilyID IS NULL
所以我的问题是:
谢谢!
我在这里查看了101 Linq示例,但我在该列表中看不到这样的内容.如果我在那里没有看到相关的例子,请链接到它.
如果我有这三个类:
class Student { int id; string name }
class Course { int id, string name }
class Enrolment { int studentId; int courseId; }
Run Code Online (Sandbox Code Playgroud)
我如何使用LINQ获取学生注册的课程列表?(假设我有一个所有三个类的IList)
我已经听过很多关于预编译存储过程的优点的讨论.但是LINQ和选择,插入,更新,删除的存储过程之间的实际性能差异是什么?有没有人进行任何测试,看看是否有任何重大差异.如果更多的交易有所作为,我也很好奇.
我的猜测是LINQ语句在第一个事务之后被缓存,并且性能可能几乎相同.思考?
我目前正在使用SpicIE开发一个IE插件.
这个插件做了一些网页抓取,类似于MSDN上发布的示例:
WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Stream dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader (dataStream);
string responseFromServer = reader.ReadToEnd ();
reader.Close ();
dataStream.Close ();
response.Close ();
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,我收到以下错误消息:
远程服务器返回错误:(407)需要代理身份验证.
我目前正在代理服务器后面工作,并使用NetworkCredential类手动提供我的网络凭据
request.Credentials = new System.Net.NetworkCredential("name", "password", "domain");
Run Code Online (Sandbox Code Playgroud)
但我仍然收到同样的错误.
即使我的问题解决了,我知道该插件的一些用户将在代理服务器后面.
我想知道如何获取IE凭据并在我的代码中使用它来将其分配给request.Credentials.
也许是这样的:
request.Credentials = IE.DefaultCredentials;
Run Code Online (Sandbox Code Playgroud) 几年来,我一直在使用 Java Swing + 我的 Wacom Graphire 数位板在几个 Java 应用程序中遇到问题,现在我自己也遇到了。
我在单击鼠标时使用数位板来解决手腕问题,它在 Windows 下工作正常,除非我使用 Java 应用程序。在 Java 应用程序中,单击笔无法正常工作。(通常问题只出现在文件选择对话框或树形控件上。)数位板还带有一个无线鼠标,可与同一数位板配合使用,并且单击也能正常工作。
我不知道问题是出在 WACOM 驱动程序中,还是出在 Windows 的 Java Swing 运行时中,或者两者都有。有没有人遇到过这个?我想向 WACOM 提交错误报告,但我不知道该告诉他们什么。
我已经能够在我自己的应用程序中重现这一点,该应用程序有一个 JEditorPane,其中包含一个我添加了 HyperlinkListener 的 HTML 文档。每次用鼠标单击时我都会收到 HyperlinkEvent.ACTIVATED 事件,但每次用笔单击时我都没有收到 HyperlinkEvent.ACTIVATED 事件。
笔和鼠标之间的一大区别在于,当您单击鼠标上的按钮时,很容易在没有鼠标移动的情况下导致单击按钮。在数位板上很难做到这一点,这似乎与缺少 HyperlinkEvent.ACTIVATED 事件有关——如果我在点击数位板时非常小心地不移动笔的位置,我想我可以得到 ACTIVATED事件。
有什么建议可以尝试,以便我可以向 WACOM 提供有关此错误的一些好信息?不能在 Java 应用程序中使用我的笔真的很令人沮丧,尤其是因为笔在“常规”Windows(非 Java)应用程序中工作正常。
通常我不会在这里问这个问题,但我想从程序员的角度找出可能发生的事情,以便我可以提交一个好的错误报告。
我有5个数据库,代表该国的不同地区.在每个数据库中,有几百个表,每个表有10,000-2,000,000个事务记录.每个表都是相应区域中客户的表示.这些表中的每一个都具有相同的模式.
我想查询所有表,就像它们是一个表一样.我能想到的唯一方法是创建一个联合所有表的视图,然后只针对它运行我的查询.但是,客户表将一直在变化(因为我们获得和失去客户),因此我必须更改我的视图的查询以包括新表(或删除不再使用的表).
有没有更好的办法?
在回应评论时,(我也将此作为对答案的回复):
在大多数情况下,我不会删除任何表格,它们将保留用于历史目的.正如我在一篇回复中发表评论时,其想法是减少较小客户(一个只有10,000条记录)的时间来查询自己的历史记录.大约有1000个客户平均有1,000,000行(并且正在增长).如果我要将所有记录添加到一个表中,那么该表中将有近十亿条记录.我还以为我正在计划未来,因为当我们说5000个客户时,我们没有一个巨大的表来保存所有交易记录(这可能是我的想法中的错误).那么,最好不要像我一样划分记录吗?我应该将它们全部混合到一张桌子里吗?对客户ID进行索引是否可以防止向小客户查询数据的延迟?
我最近通过一个制作简单的项目向LinqToSQL介绍自己.我很好奇为什么会这样:
var territories = db.Territories.Where(t => t.PendingUserCount > 0);
Run Code Online (Sandbox Code Playgroud)
但这会导致编译错误:
var territories = db.Territories;
if (someCondition)
territories = territories.Where(t => t.PendingUserCount > 0);
// Cannot implicitly convert 'System.Linq.IQueryable<Territory> to System.Data.Linq.Table<Territory>
Run Code Online (Sandbox Code Playgroud)
我也试过打电话db.Territories.ToList(),但无济于事.
我确信这只是对Linq如何运作的误解,但如果有人可以帮助我,我会很感激.
我试图在显示字符串时不使用','char作为千分隔符,而是使用空格代替.我想我需要定义一个自定义文化,但我似乎没有把它弄好.有什么指针吗?
例如:显示1000000为1 000 000而不是1,000,000
(不,String.Replace()不是我想要使用的解决方案:P)
dll的FileVersion和ProductVersion有什么区别?
特别是在运行时,是一个用于强绑定,另一个用于信息?
我想手动设置一个,另一个自动递增(通过我们的CI构建过程)
编辑:理查德在原始问题中回答了我错过的部分.这是我想要手动控制的汇编版本(通过界面更改递增),而它是我希望我的CI系统在每次构建时自动递增的文件版本.谢谢.
c# ×4
linq ×2
sql ×2
sql-server ×2
.net ×1
asp.net ×1
asp.net-2.0 ×1
formatting ×1
java ×1
linq-to-sql ×1
ms-access ×1
pen-tablet ×1
swing ×1
versioning ×1
wacom ×1
webrequest ×1