我具有以下设计的SQL Server数据库表:
[Id] INT IDENTITY (1, 1) NOT NULL,
[State] NVARCHAR (MAX) NOT NULL,
[Abbreviation] NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_USStates] PRIMARY KEY CLUSTERED ([Id] ASC)
我有一个.csv文件,格式如下:
Alabama, AL
Alaska, AK
注意:.csv文件中没有ID字段。
[当我尝试将.csv文件导入到我的SQL Server数据库中时,收到一个错误,因为它试图将“ Alabama”(。csv的字段1)写入ID字段(数据库表中的字段1)。
我如何告诉CSVHelper数据库中的字段1是一个Identity字段,并忽略它,从而在字段2中写入“阿拉巴马州”,在字段3中写入“ AL”?]
感谢您的帮助。
我具有以下设计的SQL Server数据库表:[Id] INT IDENTITY(1、1)NOT NULL,[状态] NVARCHAR(MAX)NOT NULL,[缩写] NVARCHAR(MAX)...
您未提供有关如何将文件导入SQL Server数据库的任何指示。这样可以将其导入名为StateTable
的表实体类中。
public class Program
{
public static void Main(string[] args)
{
using (MemoryStream stream = new MemoryStream())
using (StreamWriter writer = new StreamWriter(stream))
using (StreamReader reader = new StreamReader(stream))
using (CsvReader csv = new CsvReader(reader))
{
writer.WriteLine("Alabama,AL");
writer.WriteLine("Alaska,AK");
writer.Flush();
stream.Position = 0;
csv.Configuration.Delimiter = ",";
csv.Configuration.HasHeaderRecord = false;
csv.Configuration.RegisterClassMap<StateTableMap>();
var results = csv.GetRecords<StateTable>().ToList();
}
}
}
public class StateTable
{
public int Id { get; set; }
public string State { get; set; }
public string Abbreviation { get; set; }
}
public class StateTableMap : ClassMap<StateTable>
{
public StateTableMap()
{
Map(m => m.State).Index(0);
Map(m => m.Abbreviation).Index(1);
}
}