小编c00*_*0fd的帖子

我可以先在一个t-SQL事务中选择SELECT然后删除记录吗?

我无法弄清楚这是否是可接受的操作.我需要从SQL Server 2008数据库中选择记录然后删除它们,所有这些都是ASP.NET代码中的单个事务.请注意,.NET代码必须能够检索首先选择的数据.

这样的东西:

SELECT * FROM [tbl] WHERE [id] > 6;
DELETE FROM [tbl] WHERE [id] > 6
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用SQL Fiddle,但如果我这样做:

SELECT * FROM [tbl]
Run Code Online (Sandbox Code Playgroud)

我得到了完整的表格,好像没有删除任何内容.

编辑按照下面的要求,这里是检索记录的完整.NET代码:

string strSQLStatement = "SELECT * FROM [tbl] WHERE [id] > 6;" +
    "DELETE FROM [tbl] WHERE [id] > 6";

using (SqlCommand cmd = new SqlCommand(strSQLStatement, connectionString))
{
    using (SqlDataReader rdr = cmd.ExecuteReader())
    {
        while(rdr.Read())
        {
            //Read values
            val0 = rdr.GetInt32(0);
            val3 = rdr.GetInt32(3);
            //etc.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2008

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

Metro的东西在什么桌面上运行?

只是好奇,从WinAPI开发人员的角度来看,Metro应用程序运行的桌面是什么?

这个东西:

在此输入图像描述

c c++ winapi win32gui microsoft-metro

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

我是否需要使用using关键字关闭SQL Server连接?

我一直在为这个问题找到相互矛盾的结果.让我们看一下运行SQL查询的C#代码:

using (SqlConnection cn = new SqlConnection(strConnectString))
{
    cn.Open();

    using (SqlCommand cmd = new SqlCommand(strSQL, cn))
    {
        cmd.ExecuteNonQuery();
    }

    //Do I need to call?
    cn.Close();
}
Run Code Online (Sandbox Code Playgroud)

我需要拨打最后一个电话cn.Close()吗?我问的原因是,在交通繁忙的网络应用程序中,我在池中连接不足.

c# asp.net database-connection

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

类型的sizeof()运算符

我通常会在我的C++代码中执行此操作:

int variable = 10;
int sizeOfVariable = sizeof(variable);   //Returns 4 for 32-bit process
Run Code Online (Sandbox Code Playgroud)

但这对C#似乎不起作用.有模拟吗?

.net c#

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

如何使用C#在IIS中获取网站的"浏览"URL?

说,我在IIS中有"站点名称"网站.我可以通过C#代码中的ServerManager类访问其大部分功能.我似乎无法弄清楚如何获取它的"浏览"URL,就像我在下面的截图中显示的那样?

在此输入图像描述

如果我在IIS管理器中进入管理网站 - >浏览,它将使用URL启动IE:

http://localhost:8080/app1/Default.aspx
Run Code Online (Sandbox Code Playgroud)

所以我需要获得这样的URL.

PS.请注意,我不需要启动网站本身.

c# asp.net iis iis-7

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

允许移动到回收站的最长文件路径是什么?

对于我的应用程序,我正在测试允许移动到回收站中的最长可用文件路径,并且我得到了有趣的结果.

在Windows XP上,最大大小为259个字符,即MAX_PATH常量减1.

但在我的Windows 8.1专业版中,最大允许文件路径大小似乎是215个字符.

所以我很好奇有这方面的官方指导方针吗?

编辑: OK,因为下面海报请求的API,我使用SHFileOperationFO_DELETEFOF_ALLOWUNDO放置用户的文件放到回收站.由于Windows资源管理器使用与其删除操作完全相同的API,因此可以通过在Windows资源管理器中创建长路径然后尝试删除它来轻松测试它.在我的实验中,我可以看到以下内容:

  • Windows XP,如果总路径长度为259个字符(在某些版本上,它可能是257 ??),文件/文件夹将被放入回收站.否则,Windows资源管理器仅提供永久删除它的选项.

  • Windows Vista,这个限制是217个字符,包括在内.

  • Windows 7和8,它包含215个字符.

所以看起来这个最大限制正在缩小......所以我只是好奇,如果在MSDN的某处记录了这个?

windows winapi windows-explorer windows-shell

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

如何判断字体是否支持代理对Unicode字符?

我能够找到以下方法来确定Unicode-16字体是否支持某个字符.不幸的是,这对代理对Unicode字符不起作用,因为WCRANGE函数支持的struct GetFontUnicodeRanges只返回WCHAR(16位)参数作为输出.

这是我正在尝试做的一个例子:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static HFONT hFont = NULL;

    switch (message)
    {
        case WM_CREATE:
        {
            LOGFONT lf = {0};
            lf.lfHeight = -64;
            ::StringCchCopy(lf.lfFaceName, _countof(lf.lfFaceName), L"Arial");

            hFont = ::CreateFontIndirect(&lf);
        }
        break;

        case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);

            RECT rcClient = {0};
            ::GetClientRect(hWnd, &rcClient);

            HGDIOBJ hOldFont = ::SelectObject(hdc, hFont);

            LPCTSTR pStr = L">\U0001F609<";
            int nLn = wcslen(pStr); …
Run Code Online (Sandbox Code Playgroud)

c++ winapi gdi uniscribe

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

类似于.NET中的等待计时器

在非托管的Win32世界中,我习惯使用CreateWaitableTimer API 创建的等待计时器,可以用于WaitForSingleObject等同步调用,主要用于WaitForMultipleObjects.

在.NET和C#中必须有一个模拟等待计时器?

.net c# windows synchronization timer

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

我可以对 JScript (.js) 或 VBScript (.vbs) 文件进行数字签名吗?

我知道可以binary使用signtool对 Windows可执行文件进行签名。所以一直以来我都假设不能对任何由 解释的文件进行签名Windows Script Host,例如 JScript (.js) 或 VBScript (.vbs),因为它们只是文本文件。

但是今天,在打开.js我从网站上下载的文件时,收到了以下警告:

在此处输入图片说明

那么这是否意味着有一种方法可以对这些.js/.vbs文件进行签名?如果是,那又如何?

windows vbscript wsh digital-signature jscript

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

如何从可执行文件上的多/双代码签名中检索信息

我一直在使用以下代码(取自KB323809文章)来检索有关可执行文件上的代码签名的信息.这适用于单个数字签名.

但是如何检索多个代码签名的信息?

在这种情况下,下面的Microsoft代码只是为第一个签名重新获取信息.

我的想法是调用CryptMsgGetParamCMSG_SIGNER_COUNT_PARAM得到签名的数量,然后将每个签名指标传递给后续调用CryptMsgGetParamCMSG_SIGNER_INFO_PARAM(下面的代码中).但是,这种方法始终在这个返回1周的签名,即使我显然有更多的,像3例:

在此输入图像描述

#include <windows.h>
#include <wincrypt.h>
#include <wintrust.h>
#include <stdio.h>
#include <tchar.h>

#pragma comment(lib, "crypt32.lib")

#define ENCODING (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)

typedef struct {
    LPWSTR lpszProgramName;
    LPWSTR lpszPublisherLink;
    LPWSTR lpszMoreInfoLink;
} SPROG_PUBLISHERINFO, *PSPROG_PUBLISHERINFO;

BOOL GetProgAndPublisherInfo(PCMSG_SIGNER_INFO pSignerInfo,
                             PSPROG_PUBLISHERINFO Info);
BOOL GetDateOfTimeStamp(PCMSG_SIGNER_INFO pSignerInfo, SYSTEMTIME *st);
BOOL PrintCertificateInfo(PCCERT_CONTEXT pCertContext);
BOOL GetTimeStampSignerInfo(PCMSG_SIGNER_INFO pSignerInfo,
                            PCMSG_SIGNER_INFO *pCounterSignerInfo);

int _tmain(int argc, TCHAR *argv[])
{
    WCHAR szFileName[MAX_PATH]; 
    HCERTSTORE hStore = NULL;
    HCRYPTMSG hMsg = NULL; 
    PCCERT_CONTEXT pCertContext …
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi code-signing certificate

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