小编And*_*ter的帖子

自 SQL 2008 升级以来,SqlDataReader.HasRows 返回 false

我有一个连接到 SQL 数据库的 ASP.NET 2.0 网站。我已将 SQL 服务器从 2000 年升级到 2008 年,从那时起,一页无法正常工作。

我已经解决了这个问题,即使数据集不为空,对 SqlDataReader.HasRows 的调用也返回 false 并且删除检查允许通过 reader.Read() 循环访问预期数据。

    _connectionString = WebConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString;
    SqlConnection connection = new SqlConnection(_connectionString);
    SqlCommand command = new SqlCommand(searchtype, connection);
    SqlParameter _parSeachTerm = new SqlParameter("@searchterm", SqlDbType.VarChar, 255);
    _parSeachTerm.Value = searchterm;
    command.Parameters.Add(_parSeachTerm);
    command.CommandType = CommandType.StoredProcedure;
    try
    {
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        if (reader.HasRows) //this always returns false!?
        {
            while (reader.Read())
            {...
Run Code Online (Sandbox Code Playgroud)

有人知道发生了什么吗?在 HasRows 返回正确值的其他页面上也有类似的代码块。

编辑 - 只是为了澄清,存储过程确实返回我已经确认的结果,因为如果我删除 HasRows 检查,循环运行良好。只需将连接字符串中 SQL 服务器的名称更改为在 SQL 2000 上运行的相同数据库,问题就会消失。我已经检查过 NOCOUNT 已关闭,那么如果情况并非如此,还有什么可以使 HasRows …

c# sql asp.net sql-server-2008

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

如何计算SQL Server 2005中存储过程的SIZE?

我被要求对特定数据库中使用的空间进行全面细分.我知道我可以在SQL Server 2005中使用sys.dm_db_partition_stats来计算数据库中每个使用的空间大小,但有没有办法确定数据库中存储过程的个别和总大小?(当然,没有打开每一个并计算字符数.)

存储过程使用的总空间不太可能很大(与实际数据相比),但有数百个,它可能会相加.

t-sql stored-procedures sql-server-2005

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

如何计算ksh shell脚本中的上一个工作日?

在shell ksh脚本中计算前一个工作日的最优雅方法是什么?

我到现在所拥有的是:

#!/bin/ksh

set -x

DAY_DIFF=1
case `date '+%a'` in
"Sun")
   DAY_DIFF=2
   ;;
"Mon")
   DAY_DIFF=3
   ;;
esac

PREV_DT=`perl -e '($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time()-${DAY_DIFF}*24*60*60);printf "%4d%02d%02d",$year+1900,$mon+1,$mday;'`

echo $PREV_DT
Run Code Online (Sandbox Code Playgroud)

如何将$ {DAY_DIFF}变量作为值而不是字符串传输?

shell ksh date

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

关于foreach值的问题

我在模块中找到了这样写的for循环

for( @array ) {
    my $scalar = $_;
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

这与以下编写for循环的方式有区别吗?

for my $scalar ( @array ) {
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

perl foreach

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

阅读SquashFS档案

(SquashFS是一个压缩文件系统 - http://en.wikipedia.org/wiki/SquashFS)

我正在寻找一种从程序中读取SquashFS文件系统的方法.到目前为止,我已经了解了内核驱动程序,但我确信它的用户空间库必须存在于某个地方.任何语言都可以,但C是首选.

只是安装文件系统并以这种方式使用它在技术上是可行的,但我宁愿避免使用该路由,因为我正在查看的应用程序将涉及在任何给定时间使用至少几十个档案.

linux squashfs

6
推荐指数
2
解决办法
4020
查看次数

如何在Perl中将纪元时间转换为正常时间?

我正在尝试编写一个Perl脚本来解析日志,其中每行第二个值是日期.该脚本包含三个参数:输入日志文件,开始时间和结束时间.开始和结束时间用于解析每行之间的某个值,该值介于这两次之间.但为了正确运行这个,我将开始和结束时间转换为纪元时间.我遇到的问题是将循环'i'值转换回正常时间以与日志文件进行比较.运行后localtime($i)我打印了值,只看到打印的参考不是实际值.

这是我到目前为止的脚本(这是一项正在进行的工作):

#!/usr/bin/perl
use strict;
use warnings;
use Time::Local;
use Time::localtime;
use File::stat;

my $sec = 0;
my $min = 0;
my $hour = 0;
my $mday = 0;
my $mon = 0;
my $year = 0;
my $wday = 0;
my $yday = 0;
my $isdst = 0;

##########################
# Get the engine log date
##########################
my $date = `grep -m 1 'Metric' "$ARGV[0]" | awk '{print \$2}'`;
($year,$mon,$mday) = split('-', $date);
$mon--;

#########################################
# Calculate the …
Run Code Online (Sandbox Code Playgroud)

perl epoch localtime

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

更新行或删除它并插入新行更快吗?

给出SQL Server 2008/2005上的两个场景 - 1表有5行2表有100万行

如果我们需要更新几行,那么效率是多少?为什么?1)更新所需的列2)删除行并使用更新的信息INSERT新行

sql sql-server performance sql-server-2005 sql-server-2008

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

使用ack-grep的多个模式?

是否有可能(以及如何)使用ack链接模式(在Linux的某些发行版上使用ack-grep),就像我习惯使用grep一样?

例如

grep "foo" somefile.c | grep -v "bar"
Run Code Online (Sandbox Code Playgroud)

...用"foo"匹配所有行但没有"bar".

regex grep ack

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

为什么vim缩进我的Perl代码?

我在Perl中有一个子程序,应该像这样缩进:

sub GetFiles 
{
    my $pwd = shift;
    my @input = @_;
    my @returned;

    my @DirectoryContent = &GetContentInformation(@input);

    foreach (@DirectoryContent) 
    {
        my %current = %{$_};

        if ($current{'info'} =~ /<DIR>/) 
        {
            my $RecurseDir = &GetRecurseDir($pwd, \%current);
            push(@returned, &GetFiles($RecurseDir, 
                    &GetDirectoryContents($RecurseDir)));
        }
        else 
        { 
            # clean up the data
            my $size = $current{'info'};
            # filesize will be in number of bytes
            # remove file separators
            #$size =~ s/,//g; 
            my $extension = &GetFileExtension($current{'name'});
            delete($current{'info'});
            $current{'size'} = $size;
            $current{'extension'} = $extension;
            # push(@returned, \%current);
        } …
Run Code Online (Sandbox Code Playgroud)

vim perl indentation vim-perl

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

如何告诉Perl的证明实用程序忽略某些测试?

目前我这样运行prove:

prove -v -r .
Run Code Online (Sandbox Code Playgroud)

有没有办法使用正则表达式排除文件?我无法看到它perldoc prove或输出prove -H.

perl perl-prove

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