我在C#(ApplicationClass
)中使用Excel互操作,并在我的finally子句中放置了以下代码:
while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { }
excelSheet = null;
GC.Collect();
GC.WaitForPendingFinalizers();
Run Code Online (Sandbox Code Playgroud)
虽然这种工作,Excel.exe
即使我关闭Excel后,该过程仍然在后台.只有在我的应用程序手动关闭后才会发布.
我做错了什么,或者是否有其他方法可以确保互操作对象得到妥善处理?
在SQL Server中,您可以使用该IsNull()
函数检查值是否为null,如果是,则返回另一个值.现在我想知道C#中是否有类似的东西.
例如,我想做类似的事情:
myNewValue = IsNull(myValue, new MyValue());
Run Code Online (Sandbox Code Playgroud)
代替:
if (myValue == null)
myValue = new MyValue();
myNewValue = myValue;
Run Code Online (Sandbox Code Playgroud)
谢谢.
我总是对在命令后应该使用GO关键字以及命令末尾是否需要分号时感到困惑.有什么区别以及为什么/何时应该使用它们?
当我在SQL Server Management Studio中运行Generate-script时,它似乎在整个地方使用GO,但不是分号.
当我尝试使用远程连接到我的服务器应用程序时出现以下错误:
连接到远程服务器时似乎出现了问题:
服务器遇到内部错误.有关更多信息,请关闭服务器.config文件中的customErrors.
这是我的服务器应用程序上的代码:
TcpChannel tcpChannel = new TcpChannel(999);
MyRemoteObject remObj = new MyRemoteObject (this);
RemotingServices.Marshal(remObj, "MyUri");
ChannelServices.RegisterChannel(tcpChannel);
Run Code Online (Sandbox Code Playgroud)
它似乎第一次工作,但除非重新启动服务器应用程序,否则会发生错误.
我猜想有些东西没有被正确清理,但我不确定是什么因为customError仍然存在.
我开始的任何想法.谢谢.
[编辑] - 感谢Gulzar,我将上面的代码修改为以下内容,现在显示错误:
RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
TcpChannel tcpChannel = new TcpChannel(999);
MyRemoteObject remObj = new MyRemoteObject (this);
RemotingServices.Marshal(remObj, "MyUri");
ChannelServices.RegisterChannel(tcpChannel);
Run Code Online (Sandbox Code Playgroud) 有谁知道SQL Server如何确定执行顺序触发器(相同类型,即触发器之前).有没有办法改变这一点,以便我可以指定我想要的顺序.如果没有,为什么不呢.
谢谢.
我需要对一年多未触及的ClickOnce应用程序进行一些更改,因此证书已过期.
我已经读过,使用新证书发布会使应用程序失败,因为它将使用不同的密钥进行签名.
因此,我认为我需要使用相同的证书,但不知道如何更新它.
我知道这是主观的,但我想知道人们的意见,并希望在设计sql server表结构时能够应用一些最佳实践.
我个人认为在固定(最大)长度varchar上键入一个表是禁止的,因为它意味着必须在使用它作为外键的任何其他表中传播相同的固定长度.使用a int
,将避免必须在整个板上应用相同的长度,这必然导致人为错误,即1个表具有varchar (10)
,而另一个表varchar (20)
.
这听起来像是最初设置的噩梦,而且意味着将来维护表格也很麻烦.例如,假设keyed varchar列突然变成12个字符而不是10个字符.你现在必须去更新所有其他表,这可能是一个巨大的任务多年.
我错了吗?我错过了什么吗?我想知道其他人对此的看法,以及坚持使用int作为主键是避免维护噩梦的最佳方法.
我有一个用c#编写的应用程序,不能在公共假期或周末运行.我已经环顾四周,并没有找到任何地方(官方)为下一个50年提供所有公共假期.
如果我能得到这些,我只需将它们批量插入我的sql server Holidays表并使用它.但是,我无法在任何地方找到这些数据.
有谁知道Sql server是否支持公共假期或某种算法来解决它们?或者是否有人在某个地方可以批量插入.
我试图找出我是否应该在数据库内部的触发器或约束中使用业务关键逻辑.
到目前为止,我已经在触发器中添加了逻辑,因为它让我可以控制接下来发生的事情,这意味着我可以提供自定义用户消息而不是可能会混淆用户的错误.
使用约束优先于触发器是否有任何明显的性能提升,以及确定使用哪些优先实践的最佳实践.
c# ×6
sql-server ×5
sql ×4
.net ×3
asp.net ×1
clickonce ×1
com-interop ×1
constraints ×1
excel ×1
interop ×1
isnull ×1
polling ×1
remoting ×1
t-sql ×1
triggers ×1