小编Mos*_*aou的帖子

使用UNION优化JOIN不起作用

我有一个问题:

SELECT * FROM foo f1
JOIN foo f2 ON f1.ID = f2.ParentID or f1.ID = f2.ChildID
AND f2.CreateTime > 'YYYY-MM-DD 00:00:00.000'
Run Code Online (Sandbox Code Playgroud)

我试图优化它以获得更好的性能,所以我写道:

SELECT * FROM foo f1
JOIN foo f2 ON f1.ID = f2.ParentID
AND f2.CreateTime > 'YYYY-MM-DD 00:00:00.000'

UNION

SELECT * FROM foo f1
JOIN foo f2 ON f1.ID = f2.ChildID
AND f2.CreateTime > 'YYYY-MM-DD 00:00:00.000'
Run Code Online (Sandbox Code Playgroud)

但我得到了不同的结果!知道为什么吗?

谢谢!

sql sql-server

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

String.Format失败并出现奇怪的错误

我有一个使用以下代码运行的方法:

private void WriteToDb()
{
    using (SqlConnection dbConnection = new SqlConnection(_conStr))
    {
        dbConnection.Open();
        using (SqlBulkCopy sbc = new SqlBulkCopy(_conStr))
        {
            sbc.DestinationTableName = "tblLog";
            try
            {
                sbc.WriteToServer(_tblLog);
            }
            catch (Exception e)
            {
                Console.WriteLine(String.Format("{0} Error writing log info: {1} \n {3}", DateTime.Now.ToString(), e.Message, e.StackTrace));
            }
        }
    }

    _tblLog.Rows.Clear();
}
Run Code Online (Sandbox Code Playgroud)

我从String.Format()具有以下堆栈跟踪的方法接收异常:

未处理的异常:System.FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小.在System.String.Format(String格式,对象arg0)的System.String.Format(IFormatProvider提供程序,String格式,Object [] args)的System.Text.StringBuilder.AppendFormat(IFormatProvider提供程序,String格式,Object [] args)处,Object arg1,Object arg2)at MyCompany.MyClient.MySoftware.Logger.WriteToDb()

我真的能看到这个错误的根源.据我所知,我没有在该方法中使用任何集合.我还必须咀嚼这个方法是多线程的,但我再也想不到可能产生的影响.

谢谢!

c# string.format multithreading exception

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

解决方法强制实现接口属性上的私有访问修饰符

我有和接口如下:

public interface IData
{
    String Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

还有2个实现它的类:

public class Data1 : IData
{
    public String Name { get; set; }
}

public class Data2 : IData
{
    public String Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我需要阻止获取Data2实例的名称.编译器不允许以下所有形式:

internal String Name { get; set; }
private String Name { get; set; }
public String Name { private get; set; }
Run Code Online (Sandbox Code Playgroud)

我确实理解为什么这不明确可能的逻辑原因.将使用接口访问属性,该接口没有任何关于已实现的访问修饰符的线索,如果找不到它将失败.

我的用例是两个Data1Data2实例都应该能够使用使用IData参数的方法(一些不Name存在使用的方法),但是Data2敏感且不应该直接访问.因此,我正在寻找一种解决方法.

c# properties interface

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

SQL Server 中的命名实例有哪些好处?

在 SqlLocalDB 中创建命名实例而不是使用默认的 v11.0 实例有什么好处?在我的场景中,我使用连接字符串中的 AttachDbFileName 选项附加数据库文件。

一个帮助问题:是否可以对不同的 LocalDB 实例有不同的设置?如果是这样,什么样的设置(我读到你不能更改例如排序规则)?

sql-server sql-server-2012 localdb

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

如何在应用强制转换时避免创建多个对象?

目前我正在使用多个对象,以便从需要多个强制转换的事件中获取属性.

如果有更好的,可能更短的方法,我很担心如何做到这一点.

System.Windows.RoutedEventArgs eventTrack = (System.Windows.RoutedEventArgs)e;
FluidKit.Controls.ElementFlow fluidItem = (FluidKit.Controls.ElementFlow)eventTrack.OriginalSource;
Client.DataModel.Advertisement adv = (Client.DataModel.Advertisement)fluidItem.ClickedItem;

string test = adv.ShopId.ToString();
Run Code Online (Sandbox Code Playgroud)

.net c#

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

Prestashop 1.6自定义模块如何在后台配置中添加自定义输入和表

我正在尝试为我的网站创建一个自定义页脚模块,这是我第一次在prestashop 1.6中创建一个模块,我读到了这篇文章

http://doc.prestashop.com/display/PS16/Adding+a+configuration+page

我的问题是我无法完全理解我是否需要为我的模块创建一个自定义表

Configuration::updateValue('FOOTERCUSTOM_NAME', $footercustom); 
Run Code Online (Sandbox Code Playgroud)

正如您在此代码中看到的,Configuration表已经创建,并且Configuration::updateValue是默认的prestashop代码

如果我想在模块后台的配置页面创建输入1,输入2和输入3,它会自动在我的数据库中输出数据hookfooter.
这样做的正确方法是什么?

请注意,我已经成功创建了一个基本模块,这是我使用模块中的配置在数据库中插入数据的主要问题

prestashop prestashop-1.6

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

防止添加到公共字典

我在公共课堂上有一个公共字典如下:

namespace ApiAssembly
{
    public static class TypeStore
    {
        /// <summary>
        /// Initializes static members of the <see cref="TypeStore"/> class.
        /// </summary>
        static TypeStore()
        {
            Store = new Dictionary<string, Type>();
        }

        /// <summary>
        /// Gets the store.
        /// </summary>
        public static Dictionary<string, Type> Store { get; }

        public void AddTypes()
        {
            // This should be allowed
            TypeStore.Store.Add("object", typeof(object));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想阻止在内部添加新元素(通过API管理).实现这一目标的最佳方法是什么?

namespace ClientAssembly
{
    using ApiAssembly;

    public class Client
    {
        public void AddTypes()
        {
            // How to prevent this …
Run Code Online (Sandbox Code Playgroud)

c#

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

SQL Server中的负SPID?

我试图找到并杀死一个已在其中一个表上设置锁定的会话,并阻止许多其他查询执行.为此,我使用以下脚本:

SELECT REQUEST_MODE, REQUEST_TYPE, REQUEST_SESSION_ID
FROM sys.dm_tran_locks
WHERE RESOURCE_TYPE = 'OBJECT'
AND RESOURCE_ASSOCIATED_ENTITY_ID =(SELECT OBJECT_ID('System'))
Run Code Online (Sandbox Code Playgroud)

我得到的结果集如下:

在此输入图像描述

运行EXEC sp_who2不会返回具有负SPID的任何行.如何找到锁定我的表的会话?

sql sql-server locking

0
推荐指数
1
解决办法
1305
查看次数