我有一个C#应用程序,它使用SMTP通过Exchange 2007服务器通过电子邮件发送Excel电子表格报告.这些适用于Outlook用户,但对于Thunderbird和Blackberry用户,附件已重命名为"第1.2部分".
我发现这篇文章描述了这个问题,但似乎没有给我一个解决方法.我无法控制Exchange服务器,因此无法在那里进行更改.我能在C#端做什么吗?我尝试过对身体使用短文件名和HTML编码,但两者都没有区别.
我的邮件发送代码就是这样:
public static void SendMail(string recipient, string subject, string body, string attachmentFilename)
{
SmtpClient smtpClient = new SmtpClient();
NetworkCredential basicCredential = new NetworkCredential(MailConst.Username, MailConst.Password);
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress(MailConst.Username);
// setup up the host, increase the timeout to 5 minutes
smtpClient.Host = MailConst.SmtpServer;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = basicCredential;
smtpClient.Timeout = (60 * 5 * 1000);
message.From = fromAddress;
message.Subject = subject;
message.IsBodyHtml = false;
message.Body = body;
message.To.Add(recipient);
if …
Run Code Online (Sandbox Code Playgroud) 我有一个python应用程序,它有很多小的数据库访问功能,使用sqlalchemy.我试图避免在这些函数周围有很多样板会话处理代码.
我有很多功能,看起来像这样:
def get_ticket_history(Session, ticket_id):
s = Session()
try:
rows = s.query(TicketHistory)\
.filter(TicketHistory.ticket_fk==ticket_id)\
.order_by(TicketHistory.id.desc()).all()
s.commit()
return rows
except:
s.rollback()
raise
finally:
s.close()
Run Code Online (Sandbox Code Playgroud)
我试图重构这些功能,但不确定我还有最好的方法.我目前最好的是以下内容:
def execute(Session, fn, *args, **kwargs):
s = Session()
try:
ret = fn(s, *args, **kwargs)
s.commit()
return ret
except:
s.rollback()
raise
finally:
s.close()
def get_ticket_history(self, ticket_id):
def sql_fn(s):
return s.query(TicketHistory)\
.filter(TicketHistory.ticket_fk==ticket_id)\
.order_by(TicketHistory.id.desc()).all()
return execute(self.sentinel_session, sql_fn)
Run Code Online (Sandbox Code Playgroud)
这样做有更好或更惯用的方法吗?也许使用装饰师?
谢谢,乔恩
我有一个BigDecimal计算结果,我需要舍入到最近的指定区间(在这种情况下,它是金融市场的标记大小).
例如价格[Tick Size] - > Rounded Price
100.1 [0.25] -> 100
100.2 [0.25] -> 100.25
100.1 [0.125] -> 100.125
100.2 [0.125] -> 100.25
Run Code Online (Sandbox Code Playgroud)
谢谢.
更新:schnaader的解决方案,翻译成Java/BigDecimal术语:
price = price.divide(tick).setScale(0, RoundingMode.HALF_UP).multiply(tick)
Run Code Online (Sandbox Code Playgroud) Excel VBA宏中有没有办法以UTC格式获取当前日期时间?
我可以打电话Now()
来获取当地时区的当前时间; 有没有通用的方法然后将其转换为UTC?
谢谢
我有类似于以下的架构:
create table bar
(
instrument varchar(255) not null,
bar_dttm datetime not null,
bar_open int not null,
bar_close int not null
)
Run Code Online (Sandbox Code Playgroud)
我想查询表,并返回每个仪器最近的5行.
我可以通过仪器来做,有:
select top 5 instrument, bar_dttm, bar_open, bar_close
from bar
where instrument = 'XXX'
order by bar_dttm desc
Run Code Online (Sandbox Code Playgroud)
我想在一次查询中同时为所有仪器执行此操作.这可能吗?我正在运行SQL Server 2008.
我需要能够确定哪些行已插入表中的顺序(没有更新).我可以使用标识列来执行此操作吗?我知道可能存在差距,但保证按插入顺序增加值?
我需要能够查询PostgreSQL数据库以获取有关索引的信息及其详细信息.
在SQL Server上,我可以执行以下操作来获取所有索引的所有表/索引/列的列表:
select TABLE_NAME, INDEX_NAME, NON_UNIQUE, COLUMN_NAME
from INFORMATION_SCHEMA.STATISTICS
where TABLE_SCHEMA = 'my_schema'
order by TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX
Run Code Online (Sandbox Code Playgroud)
似乎INFORMATION_SCHEMA的STATISTICS表是SQL Server扩展.如何在PostgreSQL中执行等效操作?
编辑:我特别试图返回一个非规范化的结果集,如下所示
TableName, IndexName, UniqueFl, ColumnName
Run Code Online (Sandbox Code Playgroud)
所以我为所有索引中的每一列都返回一行.
谢谢,乔恩
我有一些字母 - 数字字符形式的符号,后跟一个数字.这个数字是一年,我需要扩展到两位数年份,其中9年成为09年,任何其他年份都以1为前缀.
例如:
GCZ0 -> GCZ10
GCZ1 -> GCZ11
...
GCZ8 -> GCZ18
GCZ9 -> GCZ09
Run Code Online (Sandbox Code Playgroud)
我正在玩,([A-Z]+)([9+])([0-9]+)
但我不知道如何让替换有条件地包括正确的0或1前缀.
一个正则表达的大师能指出我正确的方向吗?出于不幸的原因,我需要在单个Java正则表达式匹配/替换中执行此操作.
谢谢,乔恩
java ×2
sql-server ×2
attachment ×1
bigdecimal ×1
c# ×1
datetime ×1
email ×1
excel ×1
excel-vba ×1
identity ×1
intervals ×1
metadata ×1
postgresql ×1
python ×1
regex ×1
rounding ×1
schema ×1
session ×1
smtp ×1
sql ×1
sqlalchemy ×1
timezone ×1
vba ×1