小编Ada*_*rad的帖子

If string的一个衬里不为null或为空

我通常在整个应用程序中出于各种原因使用这样的东西:

if (String.IsNullOrEmpty(strFoo))
{
     FooTextBox.Text = "0";
}
else
{
     FooTextBox.Text = strFoo;
}
Run Code Online (Sandbox Code Playgroud)

如果我要使用它很多,我将创建一个返回所需字符串的方法.例如:

public string NonBlankValueOf(string strTestString)
{
    if (String.IsNullOrEmpty(strTestString))
        return "0";
    else
        return strTestString;
}
Run Code Online (Sandbox Code Playgroud)

并使用它像:

FooTextBox.Text = NonBlankValueOf(strFoo);
Run Code Online (Sandbox Code Playgroud)

我总是想知道是否有一些东西是C#的一部分,它会为我做这件事.可以称之为的东西:

FooTextBox.Text = String.IsNullOrEmpty(strFoo,"0")
Run Code Online (Sandbox Code Playgroud)

第二个参数是返回值if String.IsNullOrEmpty(strFoo) == true

如果不是,有人有更好的方法吗?

c# if-statement isnullorempty

62
推荐指数
4
解决办法
15万
查看次数

想要的建议:我应该怎样命名一个代表真实"事件"的课程?

我需要定义一个代表真实事件的类 - 比如"电影总理","派对"等.我将创建一组数据库对象来存储每个事件的数据并定义与其他数据的关系我们有(例如场地,人等).

"事件"这个词在软件环境中有不同的含义,所以我想把这个类命名为"事件"以外的东西.

关于其他名字的任何想法?

这个相关的帖子提出了一个类似的问题,但我认为所有的建议缺乏创造力 - 基本上@event,区分大小写的名称Event或使用老派命名约定CEvent.技术上很好的解决方案,但在与同行讨论数据对象时没有帮助(我的语音和听力能力不区分大小写)并且没有传达任何有关该类如何不是传统使用术语的信息.

naming

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

尝试创建或Upsert Route53 A记录时出现InvalidInput错误

当我运行这个boto3创建或upsert A记录时,我得到错误:

文件"./metakube.py",第523行,在post_create中自我.route53_update_alias_record(self.fugu_editor_external_dns,fugu_elb_identifier)

文件"./metakube.py",第508行,在route53_update_alias_record中"EvaluateTargetHealth":False

文件"/home/pairaccount/.virtualenvs/fugui-devops/local/lib/python2.7/site-packages/botocore/client.py",第236行,在_api_call中返回self._make_api_call(operation_name,kwargs)

文件"/home/pairaccount/.virtualenvs/fugui-devops/local/lib/python2.7/site-packages/botocore/client.py",第500行,在_make_api_call中引发ClientError(parsed_response,operation_name)

botocore.exceptions.ClientError:调用ChangeResourceRecordSets操作时发生错误(InvalidInput):无效请求

基于boto3文档,这看起来像是正确的输入.我们也尝试了一些不同的变体,但是当我们尝试使用下面的方法创建或Upsert A记录时,我们会收到此错误.我们有一个类似的方法来调用change_resource_record_sets删除A记录,它工作正常.

有什么需要纠正的想法?

def route53_update_alias_record(self, external_dns_name, load_balancer_identifier):
    route53_client = boto3.client('route53')
    hosted_zone_id = self.get_hosted_zone_id(route53_client)

    response = route53_client.change_resource_record_sets(
        HostedZoneId=hosted_zone_id,
        ChangeBatch={
            'Comment': 'upsert alias record',
            'Changes': [
                {
                    'Action': 'UPSERT',
                    'ResourceRecordSet': {
                        'Name': external_dns_name,
                        'Type': 'A',
                        'Region': 'us-east-1',
                        'AliasTarget': {
                            'DNSName': load_balancer_identifier,
                            'HostedZoneId': 'Z3DZXE0Q79N41H',
                            'EvaluateTargetHealth': False
                        }
                    }
                }
            ]
        }
    )
    self.logger.info("Delete route53 alias {} response: {}".format(external_dns_name, response))
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-route53 boto3

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

获取直接或间接向员工报告的所有员工,层次结构级别为no

我有一个像Employee一样的表

emp_id bigint,
reports_to bigint,
emp_name varchar(20),
Constraint [PK_Emp] Primary key (emp_id),
Constraint [FK_Emp] Foreign key (reports_to) references [MSS].[dbo].[Emp]([emp_id])

emp_id         reports_to        emp_name
------         ------       --------------
1              null         Sumanta
2              1            Arpita
3              null         Pradip
4              1            Sujon
5              2            Arpan
6              5            Jayanti
Run Code Online (Sandbox Code Playgroud)

我想让所有直接或间接向Sumanta或emp_id(1)报告的员工,以及层次结构级别,如下所示:

emp_id         hierarchy_level         emp_name
------         ---------------        ----------
2                    1                  Arpita
4                    1                  Sujon
5                    2                  Arpan
6                    3                 Jayanti
Run Code Online (Sandbox Code Playgroud)

我是SQL的新手,无法找到使用的内容或如何获得这些结果.值得存储过程与表值变量,或只是一个Tsql选择查询就足够了.我们非常欢迎任何帮助.

我所做的就是 -

Select Ep.emp_id,ep.emp_eame 
From Emp as E 
Inner Join Emp as Ep on Ep.reports_to=E.Emp_id 
Where E.reports_to=1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server iteration foreign-keys primary-key

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

在 SQL 中查找日期范围重叠的记录

我有以下表格和数据:

CREATE TABLE customer_wer(
  id_customer NUMBER,
  name VARCHAR2(10),
  surname VARCHAR2(20),
  date_from DATE,
  date_to DATE NOT NULL,
  CONSTRAINT customer_wer_pk PRIMARY KEY (id_customer, data_from));

INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-JAN-00', '31-MAR-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-APR-00', '30-JUN-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '15-JUN-00', '30-SEP-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-OCT-00', '31-DEC-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-JAN-01', '31-MAR-01');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-APR-01', '30-JUN-01');
INSERT INTO customer_wer VALUES …
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

CREATE TRIGGER在SQL Server 2005上花了30多分钟

在我们的实时/生产数据库中,我正在尝试向表添加触发器,但一直未成功.我已经尝试了几次,但创建触发器语句需要30多分钟才能完成,我已经取消了它.

该表通常由几个不同的进程读取/写入.我已经禁用了更新表的计划作业,并且在表上的活动较少时尝试了,但是我无法停止访问表的所有内容.

我不认为create trigger语句本身存在问题.create trigger语句在测试环境中成功且快速,并且在将行插入/更新到表时,触发器可正常工作.虽然当我在测试数据库上创建触发器时,表上没有负载,但它的行数要少得多,这与实时/生产数据库上的不同(100对13,000,000+).

这是我正在尝试运行的create trigger语句

CREATE TRIGGER [OnItem_Updated] 
    ON  [Item]
   AFTER UPDATE
AS 
BEGIN
    SET NOCOUNT ON;

    IF update(State)
    BEGIN
        /* do some stuff including for each row updated call a stored 
          procedure that increments a value in table based on the 
          UserId of the updated row */
    END
END
Run Code Online (Sandbox Code Playgroud)

在更新行或是否有多行时,是否存在在表上创建触发器的问题?

在SQLServer中,默认情况下会启用触发器.是否可以默认创建禁用的触发器?

还有其他想法吗?

sql sql-server triggers

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

使用 readline 限制读取的数量

我正在尝试读取大文本文件的前 100 行。执行此操作的简单代码如下所示。但是,挑战在于我必须防范没有任何换行符的损坏或其他扭曲文件的情况(是的,人们以某种​​方式想出了生成这些文件的方法)。在这些情况下,我仍然想读入数据(因为我需要查看那里发生了什么),但将其限制为 n 个字节。

我能想到的唯一方法是逐个字符读取文件。除了速度慢(可能只有 100 行不是问题)我担心当我遇到使用非 ASCII 编码的文件时会遇到麻烦。

是否可以限制使用 readline() 读取的字节数?或者有没有更优雅的方法来处理这个问题?

line_count = 0
with open(filepath, 'r') as f:
    for line in f:
        line_count += 1
        print('{0}: {1}'.format(line_count, line))
        if line_count == 100:
            break
Run Code Online (Sandbox Code Playgroud)

编辑:

正如@Fredrik 正确指出的那样, readline() 接受一个限制读取字符数的参数(我认为这是一个缓冲区大小参数)。因此,就我的目的而言,以下内容非常有效:

max_bytes = 1024*1024
bytes_read = 0

fo = open(filepath, "r")
line = fo.readline(max_bytes)
bytes_read += len(line)
line_count = 0
while line != '':
    line_count += 1
    print('{0}: {1}'.format(line_count, line))
    if (line_count == 100) or (bytes-read >= max_bytes):
        break
    else: …
Run Code Online (Sandbox Code Playgroud)

python

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

为什么YEAR因日期转换错误而失败?

我得到了一个名为'FechasFirmaHorometros'的视图定义为

SELECT IdFormulario, 
       CONVERT(Date, RValues) AS FechaFirma 
FROM   dbo.Respuestas 
WHERE  ( IdPreguntas IN (SELECT IdPregunta 
                         FROM   dbo.Preguntas 
                         WHERE 
         ( FormIdentifier = dbo.IdFormularioHorometros() ) 
         AND ( Label = 'SLFYHDLR' )) ) 
Run Code Online (Sandbox Code Playgroud)

我有一个名为[RespuestaPreguntaHorometrosFecha]的函数定义为

SELECT Respuestas.RValues 
FROM   Respuestas 
       JOIN Preguntas 
         ON Preguntas.Label = @LabelPregunta 
       JOIN FechasFirmaHorometros 
         ON FechasFirmaHorometros.IdFormulario = Respuestas.IdFormulario 
WHERE  Respuestas.IdPreguntas = Preguntas.IdPregunta 
       AND YEAR(FechasFirmaHorometros.FechaFirma) = @Anio 
       AND MONTH(FechasFirmaHorometros.FechaFirma) = @Mes

@LabelPregunta VARCHAR(MAX)
@Anio INT
@Mes INT
Run Code Online (Sandbox Code Playgroud)

在调试使用它的另一个存储过程时,我会在遇到上述函数时收到此消息

Conversion failed when converting date and/or time from character string.
Run Code Online (Sandbox Code Playgroud)

然而,我可以自由地做类似的事情

SELECT DAY(FechaFirma) FROM …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2012

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