小编Bra*_*ann的帖子

如何在SQL中选择一个月的第一天?

我只需要选择给定日期时间变量的月份的第一天.

我知道使用这种代码很容易:

select CAST(CAST(YEAR(@mydate) AS VARCHAR(4)) 
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

但这不是很优雅,也可能不是很快.

有一个更好的方法吗?我正在使用SQL Server 2008.

sql t-sql sql-server datetime sql-server-2008

285
推荐指数
10
解决办法
71万
查看次数

如何使用.NET创建具有特定扩展名的临时文件?

我需要生成一个扩展名为.csv的唯一临时文件.

我现在做的是

string filename = System.IO.Path.GetTempFileName().Replace(".tmp", ".csv");
Run Code Online (Sandbox Code Playgroud)

但是,这并不能保证我的.csv文件是唯一的.

我知道我遇到碰撞的可能性非常低(特别是如果你认为我没有删除.tmp文件),但这段代码对我来说并不好看.

当然我可以手动生成随机文件名,直到我最终找到一个独特的文件名(这不应该是一个问题),但我很想知道其他人是否找到了一个很好的方法来处理这个问题.

.net c# temporary-files

265
推荐指数
8
解决办法
20万
查看次数

如何在SQL Server Management Studio 2008中自动执行"生成脚本"任务?

我想在SQL Server Management Studio 2008中自动生成脚本.

现在我做的是:

  • 右键单击我的数据库,任务,"生成脚本......"
  • 手动选择我需要的所有导出选项,然后在"选择对象"选项卡上单击全选
  • 选择导出文件夹
  • 最后点击"完成"按钮

有没有办法自动完成这项任务?

编辑:我想生成创建脚本,而不是更改脚本.

sql-server automation ssms sql-server-2008 visual-studio-2008

92
推荐指数
7
解决办法
8万
查看次数

我的SSL证书应该使用什么RSA密钥长度?

我正在创建一个CSR,我想知道哪个可以说是我的RSA密钥的最佳长度.

当然,384可能太弱了,16384可能太慢了.

是否应该使用密钥长度达成共识,具体取决于证书的生命周期?

编辑:像大多数人一样,我希望我的钥匙能够相当强大.我并不担心国家安全局可能会在2019年破坏我的密钥.我只想知道当一个人计划做正常业务时最好的做法是什么(例如电子商务网站)

ssl cryptography rsa csr ssl-certificate

91
推荐指数
6
解决办法
8万
查看次数

我应该用netsh.exe做什么appid?

netsh命令想要一个appid(见这里):

netsh http add sslcert ipport=0.0.0.0:8000 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF} 
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还无法理解我应该如何知道GUID netsh要我提供的内容.任何提示?

windows ssl wcf netsh

76
推荐指数
3
解决办法
4万
查看次数

如何摆脱VS2008中的"目标程序集不包含服务类型"错误消息?

我有一个Client/Server wcf应用程序

我的可执行文件没有定义任何内容ServiceContract,它甚至没有引用System.ServiceModel(而是引用了包含服务器连接逻辑的程序集)

我有另一个程序集,由我的EXE引用,其中包含一个ServiceContract.

它曾经工作得很好.昨天,我已经玩了很多我的项目设置(部分信任,完全信任,部署设置等),现在,每次我启动我的客户端时,我都有以下消息框:

Microsoft WCF服务主机
目标程序集不包含任何服务类型.
您可能需要调整此程序集的代码访问安全性策略.

然后VS冻结1分钟,最终让我像往常一样调试我的程序.

我发现了一个关于这个问题的帖子,但解决方案不适用于我的情况.有任何想法吗?

.net debugging wcf visual-studio-2008

68
推荐指数
3
解决办法
4万
查看次数

从ac#Dictionary中删除与谓词匹配的多个项目的最佳方法?

我需要从Dictionary中删除多个项目.一种简单的方法如下:

  List<string> keystoremove= new List<string>();
  foreach (KeyValuePair<string,object> k in MyCollection)
     if (k.Value.Member==foo)
        keystoremove.Add(k.Key);
  foreach (string s in keystoremove)
        MyCollection.Remove(s);
Run Code Online (Sandbox Code Playgroud)

我无法直接删除foreach块中的项目的原因是这会抛出异常("Collection was modified ...")

我想做以下事情:

 MyCollection.RemoveAll(x =>x.Member==foo)
Run Code Online (Sandbox Code Playgroud)

但是Dictionary <>类没有公开RemoveAll(Predicate <> Match)方法,就像List <> Class那样.

这样做的最佳方式(性能明智和优雅明智)是什么?

.net c# linq collections dictionary

51
推荐指数
5
解决办法
3万
查看次数

您在Visual Studio中使用哪个插件用于SVN?

我正在考虑将SVN用于我的.Net项目,我想知道哪些插件可用于将源代码控制功能直接集成到Visual Studio IDE中.

我已经了解了以下Visual Studio扩展:

  1. VisualSVN,看起来很棒,但不是免费的.它被实现为低级VS包扩展.有人用吗?

  2. AnkhSVN,这是免费的,但我听说它有点儿马车.它实现为VS加载项扩展.有人用吗?你遇到问题吗?编辑: 2.0版本是一个完整的重写,似乎解决了我听说过的问题(与1.x版本有关)

  3. 编辑:TortoiseSVN + Mindscape的FileExplorer VS扩展,这不是一个真正的IDE集成,但在某种程度上简化了Visual Studio中TortoiseSVN的使用.

编辑:我发现AnkhSVN的和的VisualSVN之间的一些对比的帖子在这里,这里这里.

svn version-control visualsvn ankhsvn visual-studio

47
推荐指数
8
解决办法
4万
查看次数

SQL Server中数据库范围内唯一且简单的标识符

首先,我知道这个问题,并且建议(使用GUID)不适用于我的情况.

我想要简单的UID,以便我的用户可以通过电话轻松地传达这些信息:

您好,我的订单1584有问题

而不是

你好,我订单有问题4daz33-d4gerz384867-8234878-14

我希望那些是独特的(数据库范围),因为我有一些不同类型的'对象'...有订单ID,交付ID和账单ID,因为这些之间没有一对一的关系,我无法猜出ID指的是什么类型的对象.

使用数据库范围的唯一ID,我可以立即告诉客户所指的对象.我的用户只需在搜索工具中输入一个ID,我就会向他保存额外的点击以进一步细化所需的内容.

我目前的想法是使用具有不同种子1,2,3等的标识列,并且增量值为100.

这提出了一些问题:

  • 如果我最终获得超过100种对象类型怎么办?我可以使用1000或10000,但不能很好地扩展"气味"

  • 是否有可能种子"丢失"(在复制期间,数据库问题等?)

  • 更一般地说,还有其他我应该注意的问题吗?

  • 是否可以使用非整数(我目前使用bigints)作为标识列,以便我可以在ID前面加上代表对象类型的东西?(例如varchar列)

  • 使用仅包含标识列的"主表"以及对象类型是不是一个好主意,这样我只要需要一个新想法就可以在其中插入一行.我觉得它可能有点矫枉过正,我担心这会使我的所有插入请求变得复杂.此外,我无法在不查看数据库的情况下确定对象类型

  • 还有其他聪明的方法来解决我的问题吗?

sql database sql-server database-design identity

47
推荐指数
3
解决办法
4668
查看次数

如何命名在存储过程中返回的数据集表?

我有以下存储过程

Create procedure psfoo ()
AS
select * from tbA
select * from tbB
Run Code Online (Sandbox Code Playgroud)

然后我以这种方式访问​​数据:

     Sql Command mySqlCommand = new SqlCommand("psfoo" , DbConnection)
     DataSet ds = new DataSet();
     mySqlCommand.CommandType = CommandType.StoredProcedure;
     SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
     mySqlDataAdapter.SelectCommand = mySqlCommand;
     mySqlDataAdapter.Fill(ds);
Run Code Online (Sandbox Code Playgroud)

现在,当我想访问我的表时,我必须这样做:

     DataTable datatableA = ds.Tables[0];
     DataTable datatableB = ds.Tables[1];
Run Code Online (Sandbox Code Playgroud)

数据集Tables属性也通过字符串(而不是int)获得了一个访问器.

是否有可能在SQL代码中指定表的名称,以便我可以写这个:

     DataTable datatableA = ds.Tables["NametbA"];
     DataTable datatableB = ds.Tables["NametbB"];
Run Code Online (Sandbox Code Playgroud)

我正在使用SQL Server 2008,如果这有所不同.

.net sql sql-server dataset

37
推荐指数
3
解决办法
9万
查看次数