小编Mar*_*ark的帖子

在 C# 中使用 CSVHelper 更改 CSV 文件中标题的名称

我正在使用 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)

c# csv asp.net asp.net-mvc

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

用于将SSRS项目报告RDL模式从2016转换为2008版本的构建工具

我有一些SSRS报告,当前处于2016模式中,需要在构建时转换为2008 R2模式。

有谁知道我怎么能做到这一点?实际上有可能这样做吗?Microsoft是否为此提供工具?

很难找到有关此方面的信息,因此将不胜感激!

谢谢大家!

msbuild build rdl reporting-services ssrs-2008-r2

4
推荐指数
2
解决办法
3841
查看次数

在 C# 中计算校验和

我正在为在 .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)

c# string asp.net-mvc checksum

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

在存储过程之间传递一个int列表的干净方法是什么?

我有一个存储过程,导致一个用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列表?

提前致谢!

t-sql database sql-server csv stored-procedures

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