我需要一个正则表达式来捕获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)
我需要捕获所有注释,包括多行注释,以便我可以删除它们.
编辑:它有同样的目的,有一个表达式,采取一切但评论.
当你读到这篇文章时,你会非常想提出一些建议,比如"由于以下原因,这是一个坏主意......"
忍受我.我知道还有其他方法可以解决这个问题.这个问题应该被认为是琐事.
假设您有一个"交易"类,它具有所有交易的共同属性,例如发票,采购订单和销售收据.
让我们以交易"金额"的简单示例为例,这是给定交易的最重要的货币金额.
public class Transaction
{
public double Amount { get; set; }
public TxnTypeEnum TransactionType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
此数量可能在派生类型中具有更具体的名称...至少在现实世界中.例如,以下值实际上都是相同的:
所以现在我想要一个派生类"Invoice",它有一个小计而不是一般命名的Amount.理想情况下,以下两种情况都是正确的:
发票看起来像这样:
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) 在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,企业库比较熟悉,并且很乐意学习新的.
好吧,这必须是一个常见的问题.我希望你们中的一个天才知道解决方案!
我试图解决的问题是:我们使用来自各种公共资源的大量代码,并且不能轻易地将它们保持在Visual Studio中,因为它们使用不同的源控制提供程序.
理想情况下,您可以将这些项目添加到您自己的Visual Studio解决方案中,在您自己的项目中引用它们,并通过右键单击项目并随时选择"获取最新..."来使它们保持最新状态.
但是,由于Visual Studio不支持多个同步源控件提供程序,您如何保持项目引用最新?现在我们将它们导入到一个单独的位置,然后将源文件复制/粘贴到我们自己的解决方案文件夹中.一定有更好的方法.如果你知道一个,我一定会很感激.
我们的内部源代码管理提供程序是Team Foundation Server.
谢谢!
visual-studio-2010 source-control-bindings visual-studio-2008
上下文
语言: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) 我需要选择 XRef 表中 B 列的唯一值组合的计数,该表按 A 列分组。
考虑以下架构和数据,它表示一个简单的家庭结构。每个孩子都有父亲和母亲:
表父亲
| 父亲ID | 姓名 |
|---|---|
| 1 | 亚历克斯 |
| 2 | 鲍勃 |
表妈妈
| 母亲ID | 姓名 |
|---|---|
| 1 | 爱丽丝 |
| 2 | 芭芭拉 |
表儿童
| 儿童ID | 父亲ID | 母亲ID | 姓名 |
|---|---|---|---|
| 1 | 1(亚历克斯) | 1(爱丽丝) | 亚当 |
| 2 | 1(亚历克斯) | 1(爱丽丝) | 比利 |
| 3 | 1(亚历克斯) | 2(芭芭拉) | 席琳 |
| 4 | 2(鲍勃) | 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) 我对配置Visual Studio(2010)感兴趣,因此在部署C#CLR数据库项目时,它将把内容放入DBO之外的其他架构中。我知道我可以更新它手动创建的函数/过程/等...包装程序来实现此目的: CLR存储过程:如何设置模式/所有者?
但是,我真的很想以某种方式自动化该过程。如果有人知道,我将非常感谢您的回答!
我正在尝试编写一种方法,用于将给定对象转换为给定类型的实例.我从这开始:
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)
那么,我最好的选择是什么?如果有人可以给我一个可行的方法,我可以从那里拿走它.
我正在使用MVC路由,它将在URL的末尾获取未知数量的参数.像这样的东西:
domain.com/category/keyword1/keyword2/.../keywordN
这些关键字是我们必须匹配的过滤器的值.
到目前为止,我能想到的唯一方法是UGLY ......只需创建一个ActionResult,其参数多于我可能需要的参数:
ActionResult CategoryPage(string urlValue1,string urlValue2,string urlValue3等...){}
这感觉不对劲.我想我可以将它们塞进一个查询字符串中,但后来我丢失了性感的MVC URL,对吧?有没有更好的方法来声明处理程序方法,以便它处理未知数量的可选参数?
必须在Application Start上连接路由,这应该不是那么难.关键字的最大数量可以很容易地从数据库中确定,因此没有大问题.
谢谢!
我想允许我的使用者指定他们想要在存储过程中返回的行数.我想模仿这种行为:
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?我发现这不是很难维护.
如果我知道密钥,有人问我如何解密给定的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# ×6
sql-server ×4
sql ×3
asp.net-mvc ×2
t-sql ×2
actionresult ×1
aes ×1
alias ×1
base-class ×1
casting ×1
encryption ×1
generics ×1
html ×1
json ×1
jsonresult ×1
parameters ×1
properties ×1
regex ×1
sqlclr ×1
ssms ×1
url-routing ×1