小编sve*_*vit的帖子

SQL中语句和查询之间的区别

我仍然存在这种歧义:从概念上讲,SQL 语句查询之间的区别是什么?任何人都可以给出每个人的定义吗?这将是有用的,例如在以一种对每个人都清楚的方式在程序中选择变量名称时.谢谢!

另外:如何调用由多个语句组成的一大块SQL代码,其中语句由分号(;)分隔?已经回复的人可以编辑他的答案.非常感谢!

sql database terminology

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

寻找如何重构我的算法的想法

我正在尝试用我自己的一套规则来编写自己的生命游戏.我想申请的第一个"概念"是社会化(这基本上意味着细胞想要独处还是与其他细胞组成).数据结构是二维数组(现在).

为了能够将一个细胞移动到一组另一个细胞,我需要确定移动细胞的位置.我的想法是,我评估区域中的所有单元格(邻居)并获得一个向量,它告诉我在哪里移动单元格.矢量的大小为0或1(不移动或移动),角度为方向阵列(向上,向下,向右,向左).

这是一个代表细胞的力的图像,就像我想象的那样(但是达到的可能超过5):

ForceAppliedToACell http://img293.imageshack.us/img293/2852/29186643.png

我们举个例子来拍这张照片:

示例http://img683.imageshack.us/img683/7357/70002678.png

Forces from lower left neighbour: down (0), up (2), right (2), left (0)
Forces from right neighbour     : down (0), up (0), right (0), left (2)
sum                             : down (0), up (2), right (0), left (0)
Run Code Online (Sandbox Code Playgroud)

所以细胞应该上升.

我可以用很多if语句编写一个算法并检查邻域中的所有单元格.当然,如果'reach'参数设置为1(图1中的第一列),该算法将是最简单的.但是如果我将覆盖参数更改为10怎么办?我需要事先为每个'达到'参数编写一个算法...我怎么能避免这种情况(注意,力量正在增长(1,2,4,8,16,32 ......)) ?我可以针对此问题使用特定的设计模式吗?

另外:最重要的不是速度,而是能够扩展初始逻辑.

需要考虑的事项:

  • 到达应作为参数传递
  • 我想改变功能,计算力(潜力,斐波那契)
  • 只有在未填充此新位置时,单元格才能转到新位置
  • 注意角落(例如,你无法评估右上角的右邻居和顶级邻居)

.net c# algorithm design-patterns

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

如何在构建后事件中获取版本号

我想使用post-build事件自动创建一个nuget包,然后将其复制到我们网络上的共享文件夹,类似这样(版本号1.0.0.0.在MyLib.nuspec文件中指定):

nuget.exe pack "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib.1.0.0.0.nupkg" \\folder\subfolder\NuGetPackages
Run Code Online (Sandbox Code Playgroud)

这有效,但现在我想更新这个脚本,以便它也包括程序集版本,但我无法在构建后事件中获得程序集版本.我需要这样的东西:

nuget.exe pack -Version $(AssemblyVersion) "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib." + $(AssemblyVersion) + ".nupkg" \\folder\subfolder\NuGetPackages
Run Code Online (Sandbox Code Playgroud)

但是$(AssemblyVersion)变量不存在......有什么想法吗?

.net .net-4.0 visual-studio-2010 assemblyversions post-build-event

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

为什么resharper建议只读字段

为什么ReSharper在下面的示例中建议"设置"的只读字段?

如果我理解正确,readonly如果仅在构造函数中更改此字段,则应使用修饰符,但在我的示例中,我还在同一个类中的另一个方法中更改它.

我错过了什么?

public partial class OptionsForm : Form
{
    private Settings settings;

    public OptionsForm(Settings s)
    {
        settings = s;
    }

    private void SaveData()
    {
        settings.ProjectName = TextBoxProject.Text;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# resharper readonly

12
推荐指数
2
解决办法
4051
查看次数

功能无返回类型

在我的项目中(我从某人那里继承),有很多功能,如:

Public Function DoSomething(ByVal s As String)
    ' Do something to public properties
End Function
Run Code Online (Sandbox Code Playgroud)

它们被称为这样:

DoSomething(s)
Run Code Online (Sandbox Code Playgroud)

因此忽略返回值(这是对象,正如我在文档中看到的那样).将所有这些功能更改为Subs是否安全?我可以打破一些不那么明显的东西吗?

vb.net function

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

方法重载和多态

class Program
    {
        static void Main(string[] args)
        {
            List<A> myList = new List<A> {new A(), new B(), new C()};

            foreach (var a in myList)
            {
                Render(a);
            }

            Console.ReadKey();
        }

        private static void Render(A o)
        {
            Console.Write("A");
        }

        private static void Render(B b)
        {
            Console.Write("B");
        }

        private static void Render(C c)
        {
            Console.Write("C");
        }
    }

    class A
    {

    }

    class B : A
    {

    }

    class C : A
    {

    }
Run Code Online (Sandbox Code Playgroud)

输出为:AAA

是否有可能以某种方式使用方法重载,因此输出将是:ABC?

.net c# polymorphism overloading

11
推荐指数
3
解决办法
3041
查看次数

如何刷新画布

我试图创建任何排序算法的可视化表示,其中数据在int []数组中表示.维基百科上的冒泡排序示例:

来自维基百科的冒泡排序

当交换int []数组中的两个项时,我的排序算法都会引发一个事件ItemsSwapped.我试图在画布上的每个事件后显示数据,这是我的代码:

// Handler for ItemsSwapped event.
private void Render(object sender, ItemsSwapEventArgs e)
{
    canvas.Children.Clear();
    int numberOfElements = e.Data.Length;

    for (int x = 0; x < numberOfElements; x++)
    {
        RenderValue(x, e.Data[x]);
    }
    // Here I should somehow refresh canvas.
}

private void RenderValue(int x, int y)
{
    var value = new Ellipse
                    {
                        Width = 5,
                        Height = 5,
                        Stroke = Brushes.Black,
                        StrokeThickness = 2,
                    };
    Canvas.SetTop(value, x);
    Canvas.SetLeft(value, y);
    canvas.Children.Add(value);
}
Run Code Online (Sandbox Code Playgroud)

问题是,画布不会自行刷新,只是在一段时间后显示最终解决方案.如何在每次举办活动后刷新它?

编辑 - 我尝试使用UpdateLayout,InvalidateMeasure和Dispatcher对象,但都没有工作.

c# wpf refresh canvas .net-4.0

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

为什么我的Catch块仅在Visual Studio中进行调试时运行?

Program.cs中的代码

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    try
    {
        Application.Run(new Form1());
    }
    catch (Exception ex)
    {
        MessageBox.Show("Blah...");
    }
}
Run Code Online (Sandbox Code Playgroud)

在Form1中,我有一个带代码的按钮throw new Exception("");.

如果我从Visual Studio运行应用程序,则弹出我的消息框(消息'Blah ...').但是如果我从可执行文件运行应用程序,那么catch块根本不会执行.

为什么不同?

我使用的是Visual Studio 2010,.NET 4.0,Windows XP.

c# exception .net-4.0

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

Dapper中间映射

在我之前的问题中略微更高级的映射:)

表:

create table [Primary] (
    Id int not null,
    CustomerId int not null,
    CustomerName varchar(60) not null,
    Date datetime default getdate(),
    constraint PK_Primary primary key (Id)
)

create table Secondary(
    PrimaryId int not null,
    Id int not null,
    Date datetime default getdate(),
    constraint PK_Secondary primary key (PrimaryId, Id),
    constraint FK_Secondary_Primary foreign key (PrimaryId) references [Primary] (Id)
)

create table Tertiary(
    PrimaryId int not null,
    SecondaryId int not null,
    Id int not null,
    Date datetime default getdate(),
    constraint …
Run Code Online (Sandbox Code Playgroud)

c# sql-server orm dapper

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

编译为t-sql的语言

我在我的工作,写了很多T-SQL的,经常我想会有一些类型的可扩展的(例如像打字稿是Javascript - 你可以创建类和所有这些OO的东西,它只是编译为标准的JavaScript ).

我想要的一个简单示例(语义应该在当然改进):

-- Input:
def $t sysname
$t = 'Table1'
select * from $t
-- Output:
select * from Table1

-- Input (issues: remove last comma, newline characters):
def $t sysname
set $t = 'Table1'
;with Units as (select distinct Unit from $t),
[repeat @i; i=1; i<4]S$i as (select Unit, count(*) C from $t where T = $i group by Unit),[endrepeat]
select distinct [repeat (@i; i=1; i<4)]isnull(S$i.C, 0) C$i,[endrepeat]
from Units u
    [repeat @i; i=1; i<4]left join …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server dsl sql-server-2008

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