小编Pov*_*vas的帖子

从csv文件结构生成c#模型类

这里的目标是在输入csv文件后,一个神奇的工具将使用csv中的字段输出c#类.我们来看看例子吧.

输入myFile.csv:

Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar
Run Code Online (Sandbox Code Playgroud)

输出myFile.cs

public class myFile
{
   public string Year;
   public string Make;
   public string Model;
}
Run Code Online (Sandbox Code Playgroud)

所以,我唯一需要解决的是属性类型.之后我会使用FileHelpers这个类来读取csv文件.稍后它将映射到EntityFramework类(使用AutoMapper)并保存到数据库.

实际上,https://csv2entity.codeplex.com/看起来正在做我需要的,但它只是不起作用 - 我安装它并且在我的Visual Studio中没有任何改变,没有出现新的模板.该项目已完全死亡.打开源代码和......决定我可能只是在stackoverflow中问这个问题:)

FileHelpers只有一个简单的向导,允许您手动添加字段.但我有50个字段,这不是我最后一次需要这样做,所以这里首选自动解决方案.

我相信这个问题以前解决了很多次,有什么帮助吗?

c# csv

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

执行存储过程和查询之间的区别(因类型而导致算术溢出)

问题是:为什么在执行查询和存储过程时数据类型如何转换/解释会有区别?

我有一个存储过程,它给了我:

Msg 8115, Level 16, State 2, Procedure sp****ChargePackagingTest, Line 9
Arithmetic overflow error converting expression to data type nvarchar.
Run Code Online (Sandbox Code Playgroud)

问题是它只在作为存储过程执行时发生:

exec [sp****ChargePackagingTest] '2016-10-14', '2016-10-25'
Run Code Online (Sandbox Code Playgroud)

但是,如果我执行相同的查询(在存储过程外部复制并使用相同的参数声明并使用SQL管理工作室),我不会遇到问题.

最重要的是,我知道问题的确切位置:CONVERT(nvarchar(2),JobPDF.Pages/2)

存储过程说问题在第9行,但实际上并非如此.如果我将它更改为nvarchar(3),它甚至可以作为存储过程执行.

但是,JobPdf.Pages是可以为null的int类型:值只有24,48,72(我已经检查过).此外,它仅在有足够数据时崩溃,即,它不是特定于日期范围,而是特定于日期范围的长度.

存储过程代码:

ALTER PROCEDURE [dbo].[sp****ChargePackagingTest]
@dateFrom DateTime, @dateTo DateTime

AS
BEGIN

SELECT costPerOrder****.[Product Name], costPerOrder****.[Pack Price], SUM([Pack Count]) as [Pack Count], SUM(costPerOrder****.[Packaging Cost]) as [Packaging Cost]
FROM
(
    -- Raw data aggregated by order
    SELECT [Product Name], [Pack Price]
    , CEILING(SUM(Quantity) * 1.0 / [Pack Items]) as [Pack Count] -- 1.0 …
Run Code Online (Sandbox Code Playgroud)

sql stored-procedures sql-server-2012

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

标签 统计

c# ×1

csv ×1

sql ×1

sql-server-2012 ×1

stored-procedures ×1