我们有一个用C#编写的应用程序,使用.NET Framework 3.0或3.5或类似的东西.作为存储,我们使用SQL Server,我们使用Linq 2 SQL与它进行通信.
目前,数据库中的大多数(如果不是全部)文本列都设置为varchar类型(当然,长度不同).
但我开始思考......根据MSDN"字符串类型表示零个或多个Unicode字符的序列." 这是否意味着我们应该真正将这些列更改为nvarchar以便正确存储?或者这是如何工作的?他们最初将它们设置为varchar的原因是因为nvarchar需要两倍的空间(如果我已经正确理解的话).到目前为止,我已经看到它与varchar一起使用,但是我们还没有对异常的外来字符进行过多的测试......
有人可以对此有所了解吗?
我需要.NET中的免费代码覆盖工具用于个人项目.NCover对于人来说有点贵.
我有一个1GB的XML文件,想要解析它.如果我使用XML Textreader或XMLDocument,结果很慢,有时会挂起......
我从 COM 库(Microsoft Office Document Imaging 又名 MODI)收到一个 IPictureDisp 形式的图像,我想将其转换为 System.Drawing.Image 对象。
最好的方法是什么?
目前我正在使用下面的代码,但是它会抛出 NotImplementedException。
internal sealed class IPictureDispHost : AxHost
{
/// <summary>
/// Default Constructor, required by the framework.
/// </summary>
private IPictureDispHost() : base(string.Empty) { }
/// <summary>
/// Convert the image to an ipicturedisp.
/// </summary>
/// <param name="image">The image instance</param>
/// <returns>The picture dispatch object.</returns>
public new static object GetIPictureDispFromPicture(Image image)
{
return AxHost.GetIPictureDispFromPicture(image);
}
/// <summary>
/// Convert the dispatch interface into an image …Run Code Online (Sandbox Code Playgroud) 我希望log4net将日志文件(使用RollingFileAppender)写入公共应用程序数据文件夹的子文件夹(例如C:\ Documents and Settings\All Users\Application Data\Company\Product\Logs).
但是,在Win XP上,没有指定此文件夹的环境变量.我们有%ALLUSERSPROFILE%,%APPDATA%但没有什么比这更好的了%ALLUSERSAPPDATA%.
以编程方式,我可以使用Environment.SpecialFolder.CommonApplicationData,但我需要将它放在log4net配置中,如下所示:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="%ALLUSERSAPPDATA%\Company\Product\Logs\error.log" />
</appender>
Run Code Online (Sandbox Code Playgroud)
好的,我们可以在我们的设置中定义这个,但也许有人提出了一个更好的主意?
我有一个简单的查询:
select * from countries
Run Code Online (Sandbox Code Playgroud)
结果如下:
country_name
------------
Albania
Andorra
Antigua
.....
Run Code Online (Sandbox Code Playgroud)
我想在一行中返回结果,所以像这样:
Albania, Andorra, Antigua, ...
Run Code Online (Sandbox Code Playgroud)
当然,我可以编写一个PL/SQL函数来完成这项工作(我已经在Oracle 10g中完成了),但是对于这个任务是否有更好的,最好是非特定于Oracle的解决方案(或者可能是内置函数) ?
我通常会用它来避免子查询中的多行,所以如果一个人有一个以上的公民身份,我不希望她/他在列表中是重复的.
我的问题是基于SQL Server 2005上的类似问题.
更新:我的功能如下:
CREATE OR REPLACE FUNCTION APPEND_FIELD (sqlstr in varchar2, sep in varchar2 ) return varchar2 is
ret varchar2(4000) := '';
TYPE cur_typ IS REF CURSOR;
rec cur_typ;
field varchar2(4000);
begin
OPEN rec FOR sqlstr;
LOOP
FETCH rec INTO field;
EXIT WHEN rec%NOTFOUND;
ret := ret || field || sep;
END LOOP;
if length(ret) …Run Code Online (Sandbox Code Playgroud) 如果这个问题在stackOverflow上出现两次,请道歉
我试图在Windows Server 2003框上运行wcf服务.我在服务主机调用Open()时收到System.ServiceModel.AddressAlreadyInUseException异常,它告诉我以下错误:
HTTP无法注册URL http:// +:8080/LogoResizer/mex /,因为TCP端口8080正被另一个应用程序使用
我读过我需要使用httpcfg.exe来注册我的命名空间,并且我已经使用了这里的GUI工具来完成它,但我仍然得到上述异常.运行"netstat -a"并不显示在端口8080上侦听的任何内容,并且运行"httpcfg.exe query urlacl"会返回以下注册的命名空间.
C:\ Program Files\Support Tools> httpcfg query urlacl URL:http:// +:80/Temporary_Listen_Addresses /
ACL:D:(A ;; GX ;;; WD)
URL : http://+:8080/LogoResizer/
Run Code Online (Sandbox Code Playgroud)
URL : http://+:8080/LogoResizer/mex/
Run Code Online (Sandbox Code Playgroud)
我的应用程序的配置如下:
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_ImageResizerServiceContract" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="10"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" /> …Run Code Online (Sandbox Code Playgroud)