我通常在整个应用程序中出于各种原因使用这样的东西:
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
如果不是,有人有更好的方法吗?
我需要定义一个代表真实事件的类 - 比如"电影总理","派对"等.我将创建一组数据库对象来存储每个事件的数据并定义与其他数据的关系我们有(例如场地,人等).
"事件"这个词在软件环境中有不同的含义,所以我想把这个类命名为"事件"以外的东西.
关于其他名字的任何想法?
这个相关的帖子提出了一个类似的问题,但我认为所有的建议缺乏创造力 - 基本上@event,区分大小写的名称Event或使用老派命名约定CEvent.技术上很好的解决方案,但在与同行讨论数据对象时没有帮助(我的语音和听力能力不区分大小写)并且没有传达任何有关该类如何不是传统使用术语的信息.
当我运行这个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) 我有一个像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) 我有以下表格和数据:
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) 在我们的实时/生产数据库中,我正在尝试向表添加触发器,但一直未成功.我已经尝试了几次,但创建触发器语句需要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中,默认情况下会启用触发器.是否可以默认创建禁用的触发器?
还有其他想法吗?
我正在尝试读取大文本文件的前 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) 我得到了一个名为'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 ×4
sql-server ×2
boto3 ×1
c# ×1
foreign-keys ×1
if-statement ×1
iteration ×1
naming ×1
oracle ×1
primary-key ×1
python ×1
triggers ×1