我正在使用 CSV Helper 库为用户生成 CSV 文件以填充并上传到系统中。我的问题是 WriteHeader 方法只写入名称类似于“PropertyValue”的类的属性,这对用户不友好。有没有一种方法可以使生成的文本对用户友好,但仍然能够成功地将类映射到文件数据?
我的代码如下所示:
public ActionResult UploadPropertyCSV(HttpPostedFileBase file)
{
List<PropertyModel> properties = new List<PropertyModel>();
RIMEDb dbContext = new RIMEDb();
bool success = false;
foreach (string requestFiles in Request.Files)
{
if (file != null && file.ContentLength > 0 && file.FileName.EndsWith(".csv"))
{
using(StreamReader str = new StreamReader(file.InputStream))
{
using(CsvHelper.CsvReader theReader = new CsvHelper.CsvReader(str))
{
while (theReader.Read())
{
RIMUtil.PropertyUploadCSVRowHelper row = new RIMUtil.PropertyUploadCSVRowHelper()
{
UnitNumber = theReader.GetField(0),
StreetNumber = theReader.GetField(1),
StreetName = theReader.GetField(2),
AlternateAddress = theReader.GetField(3),
City = …
Run Code Online (Sandbox Code Playgroud) 我有一些SSRS报告,当前处于2016模式中,需要在构建时转换为2008 R2模式。
有谁知道我怎么能做到这一点?实际上有可能这样做吗?Microsoft是否为此提供工具?
很难找到有关此方面的信息,因此将不胜感激!
谢谢大家!
我正在为在 .NET 环境中用 C# 编写的基于 courier 的系统编写清单文件的校验和。我需要一个 8 位的字段来表示校验和,其计算方法如下:
记录校验和算法 形成以下乘积的 32 位算术和
• 记录中每个 ASCII 字符的 7 个低位
• 记录中每个字符的位置从 1 开始编号为第一个字符。对于记录的长度,但不包括校验和字段本身:
Sum = ?i ASCII( 记录中的第 i 个字符 ).( i ) 其中 i 在不包括校验和字段的记录长度上运行。
执行此计算后,将结果总和转换为二进制,并将总和的 32 个低位拆分为 8 个 4 位(八位字节)块。请注意,每个八位字节都有一个范围从 0 到 15 的十进制数值。
将 ASCII 0(零)的偏移量添加到每个八位字节以形成 ASCII 代码编号。
将 ASCII 代码编号转换为其等效的 ASCII 字符,从而形成 0123456789:;<=>? 范围内的可打印字符。
连接这些字符中的每一个以形成一个总长度为八 (8) 个字符的字符串。
我不是最擅长数学,所以我正在努力按照文档正确编写代码。到目前为止,我已经写了以下内容:
byte[] sumOfAscii = null;
for(int i = 1; i< recordCheckSum.Length; i++)
{
string indexChar = recordCheckSum.ElementAt(i).ToString();
byte[] …
Run Code Online (Sandbox Code Playgroud) 我有一个存储过程,导致一个用INT填充的临时表.我还有另一个存储过程,我想在INT列表中进行处理.
据我所知,没有一种干净的方法来传递存储过程之间的值列表,所以我将临时表VARCHAR
中的INT 转换为包含CSV格式的INT.然后,我的其他存储过程接收VARCHAR
包含CSV值的a 并将它们解析回表格格式以开始处理.
我担心的是我的CSV方法使用了.Split
我在部署环境中无法使用的方法,并且似乎也是传递值的资源.
我的第一个存储过程中的表到CSV转换如下所示:
DECLARE @tmpCSV VARCHAR(250)
set @tmpCSV = '';
SELECT @tmpCSV = @tmpCSV + CAST(i.HistoryID AS VARCHAR) + ', ' FROM @tmpIntTbl i
Run Code Online (Sandbox Code Playgroud)
我的其他存储过程中的CSV到表转换如下所示:
INSERT INTO @TempTable
SELECT CAST(items AS INT)
FROM dbo.Split(@PassedInInts, ',')
Run Code Online (Sandbox Code Playgroud)
第二个SPROC定义:
CREATE PROCEDURE [dbo].[SecondSPROC]
(
@TheIDS THENEWTYPE READONLY
)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更简洁的方法来传递存储过程之间的INT列表?
提前致谢!
asp.net-mvc ×2
c# ×2
csv ×2
asp.net ×1
build ×1
checksum ×1
database ×1
msbuild ×1
rdl ×1
sql-server ×1
ssrs-2008-r2 ×1
string ×1
t-sql ×1