小编Eri*_*ham的帖子

正则表达式匹配T-SQL脚本中的所有注释

我需要一个正则表达式来捕获T-SQL块中的所有注释.Expression需要与.Net Regex类一起使用.

假设我有以下T-SQL:

-- This is Comment 1
SELECT Foo FROM Bar
GO

-- This is
-- Comment 2
UPDATE Bar SET Foo == 'Foo'
GO

/* This is Comment 3 */
DELETE FROM Bar WHERE Foo = 'Foo'

/* This is a
multi-line comment */
DROP TABLE Bar
Run Code Online (Sandbox Code Playgroud)

我需要捕获所有注释,包括多行注释,以便我可以删除它们.

编辑:它有同样的目的,有一个表达式,采取一切但评论.

regex sql t-sql

9
推荐指数
4
解决办法
1万
查看次数

C#"重命名"派生类中的属性

当你读到这篇文章时,你会非常想提出一些建议,比如"由于以下原因,这是一个坏主意......"

忍受我.我知道还有其他方法可以解决这个问题.这个问题应该被认为是琐事.

假设您有一个"交易"类,它具有所有交易的共同属性,例如发票,采购订单和销售收据.

让我们以交易"金额"的简单示例为例,这是给定交易的最重要的货币金额.

public class Transaction
{
    public double Amount { get; set; }

    public TxnTypeEnum TransactionType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

此数量可能在派生类型中具有更具体的名称...至少在现实世界中.例如,以下值实际上都是相同的:

  • 交易 - 金额
  • 发票 - 小计
  • PurchaseOrder - 总计
  • 销售收据 - 金额

所以现在我想要一个派生类"Invoice",它有一个小计而不是一般命名的Amount.理想情况下,以下两种情况都是正确的:

  1. 在Transaction的实例中,Amount属性将是可见的.
  2. 在Invoice的实例中,Amount属性将被隐藏,但Subtotal属性将在内部引用它.

发票看起来像这样:

public class Invoice : Transaction
{
    new private double? Amount
    {
        get
        {
            return base.Amount;
        }
        set
        {
            base.Amount = value;
        }
    }

    // This property should hide the generic property "Amount" on Transaction
    public double? SubTotal
    {
        get
        { …
Run Code Online (Sandbox Code Playgroud)

c# alias properties base-class derived-class

9
推荐指数
1
解决办法
7042
查看次数

C#处理SQL Server消息输出

在SQL Server Management Studio中执行脚本时,通常会生成显示在消息窗口中的消息.例如,在运行数据库备份时:

处理率为10%.

处理率为20%.

等等...

为数据库'Sample'处理了1722608页,在文件1上处理了'Sampe'文件.

100%处理.

为数据库'Sample'处理了1页,在文件1上处理了'Sample_Log'文件.

BACKUP DATABASE在202.985秒(66.299 MB /秒)内成功处理了1722609页.

我希望能够在针对数据库运行SQL脚本的C#应用​​程序中显示这些消息.但是,我无法弄清楚如何在生成SQL时从SQL输出消息.有人知道怎么做这个吗?我必须使用哪个连接框架并不重要.我对LINQ,NHibernate,Entity Framework,ADO.Net,企业库比较熟悉,并且很乐意学习新的.

c# sql-server ssms data-access-layer

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

Visual Studio - 来自多个源控制提供商的项目?

好吧,这必须是一个常见的问题.我希望你们中的一个天才知道解决方案!

我试图解决的问题是:我们使用来自各种公共资源的大量代码,并且不能轻易地将它们保持在Visual Studio中,因为它们使用不同的源控制提供程序.

理想情况下,您可以将这些项目添加到您自己的Visual Studio解决方案中,在您自己的项目中引用它们,并通过右键单击项目并随时选择"获取最新..."来使它们保持最新状态.

但是,由于Visual Studio不支持多个同步源控件提供程序,您如何保持项目引用最新?现在我们将它们导入到一个单独的位置,然后将源文件复制/粘贴到我们自己的解决方案文件夹中.一定有更好的方法.如果你知道一个,我一定会很感激.

我们的内部源代码管理提供程序是Team Foundation Server.

谢谢!

visual-studio-2010 source-control-bindings visual-studio-2008

7
推荐指数
1
解决办法
1521
查看次数

从MVC 3 JsonResult获得Prettified JSON

上下文
语言:C#
平台版本:Microsoft .Net Framework 4.0
操作系统:Windows 7 Professional(64位)
约束:Microsoft MVC.Net 3.0

问题
我发现自己现在在浏览器中大量查看JSON,将浏览器指向一个Controller Action或我本地开发服务器上的另一个,并在视觉上解析JSON以确保所有内容都按照我们想要的方式进行格式化.MVC 3序列化程序(或JSON.Net序列化程序)返回的JSON总是返回一个缩小的字符串,所以我结束了这样的事情:

{"Bars":[{"Name":"Ghost Bar","Address":"2440 Victory Park Lane, 33rd Floor, Dallas, TX 75219","OpenDate":"\/Date(1208062800000)\/","Status":"Open"},{"Name":"M-Street Bar","Address":"5628 Sears Street, Dallas, TX 75206","OpenDate":"\/Date(1064811600000)\/","Status":"Closed"},{"Name":"Zephyr\u0027s Lounge","Address":"3520 Greenville Avenue, Dallas, TX 75206","OpenDate":"\/Date(981007200000)\/","Status":"Open"}]}
Run Code Online (Sandbox Code Playgroud)

问题
我真的想找到一种方法,至少在调试期间,让JsonResult被"美化",使它看起来更像这样:

{
  "Bars": [
    {
      "Name": "Ghost Bar",
      "Address": "2440 Victory Park Lane, 33rd Floor, Dallas, TX 75219",
      "OpenDate": "\/Date(1208062800000)\/",
      "Status": "Open"
    },
    {
      "Name": "M-Street Bar",
      "Address": "5628 Sears Street, Dallas, TX 75206",
      "OpenDate": "\/Date(1064811600000)\/",
      "Status": "Closed"
    },
    {
      "Name": …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc json jsonresult

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

如何获取与另一外部参照列中的任何值相关的一个外部参照列的不同组合

我需要选择 XRef 表中 B 列的唯一值组合的计数,该表按 A 列分组。

考虑以下架构和数据,它表示一个简单的家庭结构。每个孩子都有父亲和母亲:

表父亲

父亲ID 姓名
1 亚历克斯
2 鲍勃

表妈妈

母亲ID 姓名
1 爱丽丝
2 芭芭拉

表儿童

儿童ID 父亲ID 母亲ID 姓名
1 1(亚历克斯) 1(爱丽丝) 亚当
2 1(亚历克斯) 1(爱丽丝) 比利
3 1(亚历克斯) 2(芭芭拉) 席琳
4 2(鲍勃) 2(芭芭拉) 德里克

每个父亲的母亲的不同组合是:

  • 亚历克斯(爱丽丝、芭芭拉)
  • 鲍勃(芭芭拉饰)

总的来说,母亲有两种不同的组合

  1. 爱丽丝、芭芭拉
  2. 芭芭拉

我想编写的查询将返回母亲的这些不同组合的计数,无论它们与哪个父亲相关联

独特的母亲团体
2

我能够使用 STRING_AGG 函数成功完成此操作,但感觉很笨拙。它还需要操作数百万行,并且目前速度相当慢。有没有更惯用的方法来代替集合操作来做到这一点?

这是我的工作示例:

-- Drop pre-existing tables

DROP TABLE IF EXISTS dbo.Child;

DROP TABLE IF EXISTS dbo.Father;

DROP TABLE IF EXISTS dbo.Mother;

-- …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

6
推荐指数
1
解决办法
260
查看次数

部署期间CLR存储过程的架构

我对配置Visual Studio(2010)感兴趣,因此在部署C#CLR数据库项目时,它将把内容放入DBO之外的其他架构中。我知道我可以更新它手动创建的函数/过程/等...包装程序来实现此目的: CLR存储过程:如何设置模式/所有者?

但是,我真的很想以某种方式自动化该过程。如果有人知道,我将非常感谢您的回答!

sql-server sqlclr sql-server-data-tools

5
推荐指数
1
解决办法
2273
查看次数

C#帮我一些Generic cast awesomeness

我正在尝试编写一种方法,用于将给定对象转换为给定类型的实例.我从这开始:

private static T TryCast<T>(object o)
{
    return (T) o;
}
Run Code Online (Sandbox Code Playgroud)

进去,我知道不起作用,但它说明了这个概念.现在,当我的类型不能自动转换时,我将开始遇到问题,比如string - > DateTime.我试图使用转换类来处理这些情况,但我只是得到编译时错误而不是运行时错误.以下代码获取编译错误"无法将类型'string'的表达式转换为'T'类型

private static T TryCast<T>(object o)
{
    var typeName = typeof (T).FullName;

    switch (typeName)
    {
        case "System.String":
            return (T) Convert.ToString(o);
        default:
            return (T) o;
    }
}
Run Code Online (Sandbox Code Playgroud)

我也知道Convert.ChangeType(),但我想知道它是否会处理我在上面的开关中处理的边缘情况,比如声明的字符串 - > DateTime,我通常只使用Convert. ToDateTime for.

private static T TryCast<T>(object o)
{
    return (T)Convert.ChangeType(o, typeof(T));
}
Run Code Online (Sandbox Code Playgroud)

那么,我最好的选择是什么?如果有人可以给我一个可行的方法,我可以从那里拿走它.

c# generics casting

5
推荐指数
1
解决办法
469
查看次数

MVC Handler用于未知数量的可选参数

我正在使用MVC路由,它将在URL的末尾获取未知数量的参数.像这样的东西:

domain.com/category/keyword1/keyword2/.../keywordN

这些关键字是我们必须匹配的过滤器的值.

到目前为止,我能想到的唯一方法是UGLY ......只需创建一个ActionResult,其参数多于我可能需要的参数:

ActionResult CategoryPage(string urlValue1,string urlValue2,string urlValue3等...){}

这感觉不对劲.我想我可以将它们塞进一个查询字符串中,但后来我丢失了性感的MVC URL,对吧?有没有更好的方法来声明处理程序方法,以便它处理未知数量的可选参数?

必须在Application Start上连接路由,这应该不是那么难.关键字的最大数量可以很容易地从数据库中确定,因此没有大问题.

谢谢!

asp.net-mvc url-routing actionresult asp.net-mvc-routing

3
推荐指数
1
解决办法
1618
查看次数

C#HTML类库?

我正在寻找一个完全代表HTML 4.0HTML 4.01规范的类库或命名空间.有人知道这样的事吗?System.Web.UI看起来很有前途,但我没有看到我在那里寻找的东西.

html c#

3
推荐指数
1
解决办法
2818
查看次数

期望的结果行数作为存储过程中的参数

我想允许我的使用者指定他们想要在存储过程中返回的行数.我想模仿这种行为:

SELECT  TOP 100 AccountId ,
        AccountName
FROM    dbo.Account
Run Code Online (Sandbox Code Playgroud)

但是以这种方式:

DECLARE @resultCount INT = 100;

SELECT  TOP @resultCount AccountId ,
        AccountName
FROM    dbo.Account
Run Code Online (Sandbox Code Playgroud)

当然第二个版本导致"@resultCount附近的语法不正确"错误.有没有办法做到这一点,而不分解为连接SQL字符串和使用EXEC?我发现这不是很难维护.

sql sql-server parameters stored-procedures

2
推荐指数
1
解决办法
2095
查看次数

给定加密文本和密码的C#AES 256位解密

如果我知道密钥,有人问我如何解密给定的AES 256位加密字符串.我对加密技术不太熟悉,所以我坐下来研究这个问题.

在MSDN上找到了这个例子,并尝试修改它只做Decrypt:

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

internal class AesExample
{
    public static void Main()
    {
        var encryptedString = "U2FsdGVkX1/cHT8XuHCfpw0AV4jpaO8JfLqUeCRJqjY=";
        var secret = "SPARKY";

        // I know this is not the correct way to get my input byte arrays...
        // Just illustrating that I DO need byte arrays.
        var encryptedBytes = Encoding.UTF8.GetBytes(encryptedString);
        var secretBytes = Encoding.UTF8.GetBytes(secret);

        try
        {
            using (var aes = new AesManaged())
            {
                aes.Key = secretBytes;

                // Decrypt the bytes …
Run Code Online (Sandbox Code Playgroud)

c# encryption aes

2
推荐指数
1
解决办法
6732
查看次数