小编Ale*_*der的帖子

在Update语句中使用表别名的好方法?

我正在使用SQL Server,并尝试从同一个表中更新行.我想使用表别名来提高可读性.

这就是我现在这样做的方式:

UPDATE ra
SET ra.ItemValue = rb.ItemValue
FROM dbo.Rates ra
INNER JOIN  dbo.Rates rb
ON ra.ResourceID = rb.ResourceID
WHERE ra.PriceSched = 't8'
AND rb.PriceSched = 't9'
Run Code Online (Sandbox Code Playgroud)

有更简单/更好的方法吗?

sql-server

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

在C#中使用Bitmap对象查找图像格式

我正在加载图像文件硬盘驱动器的二进制字节并将其加载到Bitmap对象中.如何从Bitmap对象中找到图像类型[JPEG,PNG,BMP等]?

看起来微不足道.但是,想不出来!

有替代方法吗?

感谢您的回复.

更新正确的解决方案:

@CMS:感谢您的正确回复!

实现此目的的示例代码.

using (MemoryStream imageMemStream = new MemoryStream(fileData))
{
    using (Bitmap bitmap = new Bitmap(imageMemStream))
    {
        ImageFormat imageFormat = bitmap.RawFormat;
        if (bitmap.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
            //It's a JPEG;
        else if (bitmap.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
            //It's a PNG;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# image

80
推荐指数
4
解决办法
7万
查看次数

如何添加nuget包并运行自定义项目向导?

我建立了自己的项目模板.使用模板创建项目时,将启动自定义向导,允许用户编辑已创建的项目.

问题是我还需要为创建的项目添加一些非常简单的nuget包(只有mvvmlight,MyToolkit和另外1个).为此WizardData,我使用正确的包向我的vstemplate 添加了一个元素.

问题出现了:为了启动我的自定义向导,我需要在WizardExtension元素内部引用我的向导.但是为了自动安装nuget包,我需要NuGet.VisualStudio.TemplateWizard在我的WizardExtension元素中放置一个引用,并且WizardExtension只能有一个它将实例化的类,但我有2个需要运行.

那么我该如何解决这个问题呢?

这是启动我自己的向导的代码.现在我只需要安装NuGet包:

<WizardExtension>
    <Assembly>PartyTemplateWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=7eb2f41084fd4cd5</Assembly>
    <FullClassName>PartyTemplateWizard.Wizard</FullClassName>
</WizardExtension>
<WizardData>
    <packages repository="template">
        <package id="MvvmLight" version="4.1.27.0" />
        <package id="MvvmLightLibs" version="4.1.27.0" />
        <package id="MyToolkit" version="1.14.0" />
        <package id="linqtotwitter" version="2.1.06" />
    </packages>
</WizardData>
Run Code Online (Sandbox Code Playgroud)

有没有人有办法解决吗?

wizard setup-project visual-studio visual-studio-2012

15
推荐指数
1
解决办法
1796
查看次数

JSON.NET和替换@登录XML到JSON转换

JSON.NET框架可以将XML转换为JSON,但它使用JSON中的@符号作为属性.我希望在将它发送到视图之前删除它.对此最好的方法是什么?

我知道我可以直接替换,但@字符在某处可能是相关的,不应该被替换.这有正则表达式吗?

public ActionResult Layout()
{
    var xml = new XmlDocument();
    xml.XmlResolver = null;
    xml.Load(Server.MapPath("~/App_Data/Navigation.xml"));
    return Content(JsonConvert.SerializeXmlNode(xml, Newtonsoft.Json.Formatting.Indented));
}
Run Code Online (Sandbox Code Playgroud)
{
  "Layout": {
    "Navigation": [
      {
        "@Type": "Menu",
        "@Title": "Dashboard"
      },
      {
        "@Type": "Menu",
        "@Route": "Events",
        "@Title": "Events",
        "Navigation": {
          "@Type": "Action",
          "@Route": "Event",
          "@Title": "+ Add Event",
          "@Order": "1",
          "Navigation": {
            "@Type": "Item",
            "@Route": "Event",
            "@Name": "Event",
            "Navigation": [
              {
                "@Route": "Pools",
                "@Type": "SubNavigation",
                "@Name": "Pools"
              },
              {
                "@Route": "Brackets",
                "@Type": "SubNavigation",
                "@Name": "Brackets"
              }
            ]
          }
        }
      }
    ] …
Run Code Online (Sandbox Code Playgroud)

xml json json.net

11
推荐指数
2
解决办法
9083
查看次数

T-SQL VARCHAR(MAX)截断

DECLARE @str VARCHAR (MAX);

SELECT @str = COALESCE(@str + CHAR(10), '') +
       'EXECUTE CreateDeno ' + CAST(ID AS VARCHAR) 
FROM   GL_To_Batch_Details
WHERE  TYPE = 'C' AND
       Deno_ID IS NULL;

--PRINT @str;--SELECT @str;
**EXEC(@str);**
Run Code Online (Sandbox Code Playgroud)

EDITED

EXECUTE语句是否将字符串截断为8,000个字符PRINT?如何执行具有超过8,000个字符的动态SQL语句?

任何建议都会受到热烈的赞赏.

t-sql

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

DotNetNuke和错误记录

DotNetNuke是否提供任何内置的错误记录框架?我的客户端正在使用DotNetNuke,我没有看到全局错误记录框架.我看到下面的课有一些try/catch使用它们.

namespace DotNetNuke.Services.Exceptions
{
    [StandardModule]
    public sealed class Exceptions
    {
        public static ExceptionInfo GetExceptionInfo(Exception e);
        public static void LogException(Exception exc);
        public static void LogException(ModuleLoadException exc);
        public static void LogException(PageLoadException exc);
        public static void LogException(SchedulerException exc);
        public static void LogException(SecurityException exc);
        public static void LogSearchException(SearchException exc);
        public static void ProcessModuleLoadException(Control ctrl, Exception exc);
        public static void ProcessModuleLoadException(PortalModuleBase objPortalModuleBase, Exception exc);
        public static void ProcessModuleLoadException(Control ctrl, Exception exc, bool DisplayErrorMessage);
        public static void ProcessModuleLoadException(PortalModuleBase objPortalModuleBase, Exception exc, bool DisplayErrorMessage);
        public static void …
Run Code Online (Sandbox Code Playgroud)

dotnetnuke error-logging

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

Path.Data样式仅适用于样式化对象的第一个实例

A有一个ListBox项,每个ListBoxItem都包含一个Path对象形式的图标,如下所示:

<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid ...>
            ...
            <Path Margin="4" Style="{StaticResource ErrorIconPath}" 
                  Stretch="Uniform" Width="26" Height="26"
                  RenderTransformOrigin="0.5,0.5" Grid.Column="1" Grid.Row="1"
                  UseLayoutRounding="False"
                  HorizontalAlignment="Center" VerticalAlignment="Center" />
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

Path的样式包含在Appl.xaml(Application.Resourcessection)中,如下所示:

<Style x:Key="ErrorIconPath" TargetType="Path">
    <Setter Property="Data" Value="F1M874.094,289.369L854.3,254.63C854.028,254.151 853.515,253.856 852.958,253.856 852.403,253.856 851.89,254.151 851.617,254.63L831.824,289.369C831.555,289.84 831.559,290.416 831.835,290.883 832.111,291.348 832.618,291.634 833.165,291.634L872.752,291.634C873.299,291.634 873.805,291.348 874.081,290.883 874.357,290.416 874.361,289.84 874.094,289.369 M855.653,287.189L850.264,287.189 850.264,282.745 855.653,282.745 855.653,287.189z M855.653,279.41L850.264,279.41 850.264,266.077 855.653,266.077 855.653,279.41z" />
</Style>
Run Code Online (Sandbox Code Playgroud)

问题是只有ListBox中的第一个项目Data按预期绑定属性,其他项目根本没有绑定它(因此它们显示为空格,但匹配的大小Path).此外,当我在其他任何地方(即ListBox之外)使用样式时,只会发生第一个发生的实例.

奇怪的是,如果我在内联中定义Fill属性Style而不是内联,它可以正常工作并且不会出现与Path属性相同的问题.

我的猜测是,这与Data不是原始类型有关,但我没有找到任何修复.

编辑:有趣的是,当我将Data属性直接绑定到System.String …

wpf xaml styles windows-phone-7

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

如何在基于DNN的Web API上处理安全性/身份验证

我正在为DotNetNuke 6网站构建REST API,利用DNN基于MVC的服务框架.但是,我没有任何身份验证背景,所以我甚至不确定从哪里开始.

基本上,我们希望我们的客户能够对其门户网站的数据进行GET请求,并且我们希望一些客户端(但不是所有客户端)能够对其用户数据发布简单更新.

我一直在努力寻找信息,但问题是我不确定我在寻找什么.DNN有不同的登录和角色,但我不确定他们是否或如何参与.我听说过像oAuth这样的事情,但我对它的理解是最基本的.我不知道这是否是我需要的,以及它是否或如何适用于DNN.谁能指出我正确的方向?

更新:根据以下答案,将其与模块和进一步的研究结合起来,这就是我所做的:

我为这项服务创建了一个模块,我为它添加了两个特殊权限:"APIGET"和"APIPOST".我将这些分配给了DNN中的一些测试角色/测试帐户.我编写了一个自定义authorize属性,给定模块ID,检查当前用户是否具有必要的权限(通过角色或直接).据我所知,标签ID在我的情况下是无关紧要的.

它似乎既可以使用Web浏览器(基于我登录的DNN帐户),也可以使用php脚本发送带有帐户用户名/密码的HTTP请求.

授权属性:

using DotNetNuke.Entities.Modules;
using DotNetNuke.Entities.Portals;
using DotNetNuke.Security;
using DotNetNuke.Security.Permissions;
using System.Web;

public class MyAuthorize : DotNetNuke.Web.Services.AuthorizeAttributeBase
{
    public const string AuthModuleFriendlyName = "MyAuthModule";
    public const string GETPermission = "APIGET";
    public const string POSTPermission = "APIPOST";

    public string Permission { get; set; }

    protected override bool AuthorizeCore(HttpContextBase context)
    {
        ModuleController mc = new ModuleController();

        ModuleInfo mi = mc.GetModuleByDefinition(PortalController.GetCurrentPortalSettings().PortalId, AuthModuleFriendlyName);

        ModulePermissionCollection permCollection = mi.ModulePermissions;

        return ModulePermissionController.HasModulePermission(permCollection, Permission);
    }
}
Run Code Online (Sandbox Code Playgroud)

控制器:("mytest"是GET和POST的端点)

public class MyController …
Run Code Online (Sandbox Code Playgroud)

dotnetnuke restful-authentication

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

SQL Server在多租户应用程序中碎片化连接池性能

我正在寻找一个SQL Server中的多租户工具.我正在考虑这里描述的共享数据库,共享架构和租户视图过滤器.唯一的缺点是碎片连接池......

根据http://msdn.microsoft.com/en-au/architecture/aa479086,租户视图过滤器描述如下:

"SQL视图可用于授予单个租户访问给定表中某些行的权限,同时防止他们访问其他行.

在SQL中,视图是由SELECT查询的结果定义的虚拟表.然后可以查询生成的视图并将其用于存储过程,就好像它是一个实际的数据库表一样.例如,以下SQL语句创建一个名为Employees的表的视图,该表已被过滤,以便只显示属于单个租户的行:

CREATE VIEW TenantEmployees AS 
SELECT * FROM Employees WHERE TenantID = SUSER_SID()
Run Code Online (Sandbox Code Playgroud)

此语句获取访问数据库的用户帐户的安全标识符(SID)(您可以回忆,它是属于租户的帐户,而不是最终用户),并使用它来确定视图中应包含哪些行"

考虑到这一点,如果我们有一个数据库存储5,000个不同的租户,那么连接池就完全碎片化,每次向数据库发送请求时,ADO.NET都需要建立一个新的连接并进行身份验证(请记住连接池适用于每个唯一连接字符串)这种方法意味着你有5,000个连接字符串......

我有多担心这件事?有人能给我一些真实世界的例子,说明连接池对繁忙的多租户数据库服务器有多大影响(比如每秒处理100个请求)?我可以在这个问题上投入更多硬件吗?它会消失吗?

思绪??

sql-server performance connection-pooling multi-tenant

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

使用LINQ和Lambda进行多选和连接

我怎么能这样做queryLINQ and LAMBDA

QUERY

Select san_negocio.imovel_id
      ,san_negocio.negocio_id
      ,san_imovel.credenciada_id
      ,san_proposta.proposta_id
      ,san_proposta.credenciada_id
  from san_negocio
  join san_proposta
    on san_negocio.imovel_id = san_proposta.imovel_id
  join san_imovel
    on san_negocio.imovel_id = san_imovel.imovel_id
 where san_negocio.credenciadacaptadora_id is null
   and san_negocio.credenciadavendedora_id is null
   and san_proposta.statusproposta_id = 2
Run Code Online (Sandbox Code Playgroud)

我试过了:

var objetos = db.San_Negocio.Join(db.San_Proposta, a => a.Imovel_Id, b => b.Imovel_Id, (a, b) => new { San_Negocio = a, San_Proposta = b })                
    .Join(db.San_Imovel, a => a.San_Negocio.Imovel_Id, c => c.Imovel_Id, (a, c) => new { San_Negocio = a, San_Imovel = …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

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