哇,很难找到这个主题的简单解释.一个简单的多对多关系.
三个表,tableA,tableB和一个联结表A_B.
我知道如何使用密钥和所有设置关系,但是当执行INSERT,UPDATE和DELETE查询时,我会感到有些困惑....
基本上,我正在寻找的是一个示例,显示:
如何根据TableB中的ID获取TableA中的所有记录
如何根据TableA中的ID获取TableB中的所有记录
3如何在TableA或TableB中插入,然后在联结表中进行相应的INSERT以建立连接.
我不是在寻找特定项目的解决方案,只是可以应用的一些常规示例.也许你有什么东西躺在身边?
昨天我和一位同事讨论过他使用SSIS(或类似的东西)用SSIS包做一些非常酷的事情的情况,他以"Reginald Williams博士"的名义传递了这个名字.并且基于一些加权方案,该系统足够聪明,可以弄清楚如何对其进行标记并将其存储在数据库中作为"Salutation- First Name - Last Name - Suffix".他抛出了一些流行语,如BI,SSIS,ETL和数据挖掘.我真的想要更多信息,但甚至不知道从哪里开始询问.
我是一名.Net开发人员,精通C#,Vb.Net,WPF等......但是我不知道这些技术是什么,如何将它们添加到我的技能组中,以及它是否是我真的应该关注.任何和所有方向都会有所帮助.
我们都使用Web应用程序,Windows应用程序,数据库,帮助文件,配置文件和注册表值来完成代码,小型(如一个.exe)或大型应用程序(完整解决方案)......
我的问题很简单,在我看来,现在我需要在一个安装设置中部署一个Web应用程序和一个Windows应用程序:
您使用什么来部署应用程序,创建帮助文件,数据库脚本,以便我们可以创建数据库和表,为Web应用程序创建虚拟目录,添加注册表值以使用我们的Windows应用程序?
我只是从Visual Studio 2008打开安装和部署,但它是我还是缺少很多这样的功能?有没有最糟糕的尝试呢?
我知道他们在公司使用的Inno安装程序,但它并不是全部,我应该看到的任何好的教程?在我的搜索中,我在Visual Studio Gallery中找到了一些产品,但没有一个是一体化的:(
谢谢.
意图:在填充节点子节点的持续时间内显示busy/Wait光标.
似乎隐藏在WPF中.我记得在Winforms Tree Control中有一些你可以订阅的事件 - 实现这一点.
目前我有一个TreeView,它有许多与其SelectedItem相关的列表视图.所有控件都是数据绑定,并使用DataTemplates显示项目.代码是有用的.但是,当我扩展一个有很多孩子的树节点时,UI变得迟钝..看起来点击没有注册..而我是一个不耐烦的用户去点击节点点击.
那我该怎么做?我想在AfterExpand中将Cursor设置为Wait并在AfterExpand中重置.
代码乱涂乱画:
<HierarchicalDataTemplate DataType="{x:Type local:LinqToSqlNodeClass}" ItemsSource="{Binding Path=Children}">
// visual representation
</HierarchicalDataTemplate>
// more typed data templates
<TreeView ItemsSource="{Binding Path=Nodes}" />
Run Code Online (Sandbox Code Playgroud) 我刚刚将几个自制的Outlook COM-addins从Delphi 2007移植到Delphi 2009,现在我遇到了一些非常奇怪的错误(在你问之前:没有一个看起来与字符串处理有任何明显的关系),例如模式对话框,当一个人试图再次调用它们时挂起Outlook(第一次看起来很好),但只有当它们从一个特定的事件处理程序调用而不是在其他地方做同样的事情时.当我将错误跟踪到特定的代码行并注释掉该行或用不同的代码将其替换为相同的效果时(例如,通过将代码通过函数直接调用到调用站点),将出现错误离开 - 通常只是为了稍后再发表一些(同样不显眼的)陈述.
在Delphi调试器中运行时,我可以看到冻结通常在访问冲突之前GetMem.inc.至少所有这些问题都是100%可重复的......
毋庸置疑,在Delphi 2007中编译这些插件时,我们没有遇到任何这些问题.
现在,我很茫然.我知道我很幸运,但即使我认为自己是一个相当有经验的程序员(虽然主要是在利基领域),我从来没有真正处理过这类错误.正如这个问题的标题所说,我甚至不知道从哪里开始.我可以尽可能多地浏览代码,但无限的汇编语句对我来说毫无意义,我也不熟练有效地使用CPU视图.
此外,我甚至不确定这是否是我自己的代码开头的问题(在这种情况下我实际上倾向于怀疑).我们大量使用了许多第三方库(例如JCL,ADX,Redemption).ADX特别指出其Delphi 2009支持"beta".
我也尝试过使用FastMM的FullDebugMode,事实上我确实发现了ADX中的一些错误(例如,在被释放后被修改的块)但是当我使用Delphi 2007进行编译时所有这些也会发生,所以它似乎还不是很有必要这些最终是观察到的回归的原因.
那么,我该如何处理呢? - 或者更好的是:我在哪里可以找到一些学习如何处理这个问题的好资源?例如,有关使用CPU视图或有效解释和处理FastMM提交的报告的教程?这些都是正确的工具吗?我还应该在哪儿看?
附录:
在这种情况下,我应该怀疑哪些类型的代码?什么样的代码甚至有可能在内存中造成这样的破坏?我可以想到我的代码执行远程接近显式内存操作的任何地方的唯一地方是在准备WinAPI调用时保留一些缓冲区空间.还要记住,我的所有代码在Delphi 2007和Delphi 2009版本之间是相同的,Delphi 2007版本没有出现这样的问题.
更新:
有一些概率,促使我发布此问题的问题现已解决.请看下面我自己的答案.
我知道这听起来很奇怪,但我需要在每个方法中放置一个包装try catch块来捕获所有异常.我们有数千种方法,我需要以自动方式完成.你有什么建议?
我打算解析所有cs文件并检测方法,并在应用程序中插入try catch块.你能告诉我任何我可以轻松使用的解析器吗?或任何有助于我的事......
每种方法都有其独特的数字,如5006
public static LogEntry Authenticate(....)
{
LogEntry logEntry = null;
try
{
....
return logEntry;
}
catch (CompanyException)
{
throw;
}
catch (Exception ex)
{
logEntry = new LogEntry(
"5006",
RC.GetString("5006"), EventLogEntryType.Error,
LogEntryCategory.Foo);
throw new CompanyException(logEntry, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
我为此创造了这个; http://thinkoutofthenet.com/index.php/2009/01/12/batch-code-method-manipulation/
这已经困扰了我很长一段时间.
99%的时候,GROUP BY子句是SELECT子句的精确副本,减去了聚合函数(MAX,SUM等).
这打破了"不要重复自己"的原则.
什么时候GROUP BY子句不能包含SELECT子句的精确副本减去聚合函数?
我意识到一些实现允许你在GROUP BY中使用不同于SELECT的字段(因此99%,而不是100%),但这肯定是一个非常小的例外?
如果您使用不同的字段,有人可以解释应该返回的内容吗?
谢谢.
我该如何从我的视图中启动删除操作?
为每个实体创建一个新的表单标签似乎不对:-)
<% foreach (var subscriber in group.Subscribers) { %>
<tr>
<td><%= subscriber.Email %></td>
<td><%= Html.ActionLink("[edit]", "edit", "subscriber", new {id=subscriber.SubscriberId}, null) %></td>
<td>
<form id="delete-subscriber-form" method="post" action="<%= Url.Action( "delete", "subscriber", new { @subscriberId = subscriber.SubscriberId }) %>">
<input type="submit" value="Delete" />
</form>
</td>
</tr>
<% } %>
Run Code Online (Sandbox Code Playgroud)
你会怎么做?
考虑具有相同实体的两个迭代器方法:
public static IEnumerable<int> It1() {
...
}
public static IEnumerator<int> It2() {
...
}
Run Code Online (Sandbox Code Playgroud)
呼叫It2与呼叫有It1.GetEnumerator()什么不同吗?
是否有充分的理由将迭代器定义为IEnumerator<T>结束IEnumerable<T>?我能想到的唯一一个就是你实施的时候IEnumerable<T>.GetEnumerator().
编辑:通过迭代器方法我的意思是使用yield return和yield break构造的方法.
我正在尝试用测试开始一个新的MVC项目,我认为最好的方法将有2个数据库.1用于测试和1用于我运行应用程序并使用它(也测试真的因为它还没有生产).
对于测试数据库,我考虑在测试设置方法中放置create table脚本和填充数据脚本,然后在拆卸方法中删除所有这些.
我将使用Linq to SQL但我不认为这会允许我这样做吗?
如果我想这样做,我是否必须去ADO路线?或者我应该只使用模拟对象并将数据存储为数组或什么?
关于最佳实践的任何提示?
杰夫是如何为StackOveflow做这件事的?
asp.net-mvc ×2
c# ×2
sql ×2
.net ×1
data-mining ×1
debugging ×1
delphi ×1
delphi-2009 ×1
deployment ×1
group-by ×1
iterator ×1
linq ×1
many-to-many ×1
parsing ×1
ssis ×1
tdd ×1
treeview ×1
wpf ×1