Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文本文件解析为数据表_C#_Database_Parsing - Fatal编程技术网

C# 将文本文件解析为数据表

C# 将文本文件解析为数据表,c#,database,parsing,C#,Database,Parsing,我有一个遗留系统,可以将订单信息导出到以下格式的文本文件中,我需要将这些数据导入到一个具有SQL数据库后端的MVC web应用程序中 我正在使用webclient从web服务器获取文件,但现在我需要解析它以导入数据 我需要字符串字段的双引号内的数据和数字字段的数字 以下是文件的外观: SLOCATION Pub C "FTL" MQUOTE Pub C " " MCPAYDATE Pub C " " MTAXN

我有一个遗留系统,可以将订单信息导出到以下格式的文本文件中,我需要将这些数据导入到一个具有SQL数据库后端的MVC web应用程序中

我正在使用webclient从web服务器获取文件,但现在我需要解析它以导入数据

我需要字符串字段的双引号内的数据和数字字段的数字

以下是文件的外观:

SLOCATION   Pub   C  "FTL"  
MQUOTE      Pub   C  " "  
MCPAYDATE   Pub   C  "                    "  
MTAXNO      Pub   C  "                  "  
MCOUNTY     Pub   C  "   "  
MCUSTCAT    Pub   C  "RELIGIOUS ORGANIZATION"  
MRREF       Pub   N           4  (         4.00000000)  
MLREF       Pub   N           7  (         7.00000000)  
MLREC       Pub   N           4  (         4.00000000)  
MSUBTOT     Pub   N          67.4600  (        67.46000000)  
MCALL       Pub   C  " "  
PCATA       Pub   C  "X32-SER   "  
PCATB       Pub   C  "LD        "  
PCATC       Pub   C  "NP        "  
PCATD       Pub   C  "          "  
PCATE       Pub   L  .F.  
PCATF       Pub   L  .F.  
PCATG       Pub   L  .F.  
PCATH       Pub   L  .F.  
PCATI       Pub   L  .F.  
PCATJ       Pub   L  .F.  
PCATK       Pub   L  .F.  
PCATL       Pub   L  .F.  
PCATM       Pub   L  .F.  
PCATN       Pub   L  .F.  
PCATO       Pub   L  .F.  
PQUANA      Pub   N           1.00  (         1.00000000)  
PQUANB      Pub   N           1.00  (         1.00000000)  
PQUANC      Pub   N           1.00  (         1.00000000)  
PQUAND      Pub   N           0.00  (         0.00000000)  
PQUANE      Pub   L  .F.  
PQUANF      Pub   L  .F.  
PQUANG      Pub   L  .F.  
PQUANH      Pub   L  .F.  
PQUANI      Pub   L  .F.  
PQUANJ      Pub   L  .F.  
PQUANK      Pub   L  .F.  
PQUANL      Pub   L  .F.  
PQUANM      Pub   L  .F.  
PQUANN      Pub   L  .F.  
PQUANO      Pub   L  .F.  
PDONEA      Pub   C  "Test Award 6.5 in      
                                 "  
PDONEB      Pub   C  "LAST DONE                             
                                 "  
PDONEC      Pub   C  "John Doe                   
                                 "  
PDONED      Pub   C  "                                      
                                 "  
PDONEE      Pub   L  .F.  
PDONEF      Pub   L  .F.  
PDONEG      Pub   L  .F.  
PDONEH      Pub   L  .F.  
PDONEI      Pub   L  .F.  
PDONEJ      Pub   L  .F.  
PDONEK      Pub   L  .F.  
PDONEL      Pub   L  .F.  
PDONEM      Pub   L  .F.  
PDONEN      Pub   L  .F.  
PDONEO      Pub   L  .F.  
PDTWOA      Pub   C  "                                      
                                 "  
PDTWOB      Pub   C  "654321                                
                                 "  
PDTWOC      Pub   C  "                                      
                                 "  
PDTWOD      Pub   C  "                                      
                                 "  
PDTWOE      Pub   L  .F.  
PDTWOF      Pub   L  .F.  
PDTWOG      Pub   L  .F.  
PDTWOH      Pub   L  .F.  
PDTWOI      Pub   L  .F.  
PDTWOJ      Pub   L  .F.  
PDTWOK      Pub   L  .F.  
PDTWOL      Pub   L  .F.  
PDTWOM      Pub   L  .F.  
PDTWON      Pub   L  .F.  
PDTWOO      Pub   L  .F.  
PUNITA      Pub   N          67.46  (        67.46000000)  
PUNITB      Pub   N           0.00  (         0.00000000)  
PUNITC      Pub   N           0.00  (         0.00000000)  
PUNITD      Pub   N           0  (         0.00000000)  
PUNITE      Pub   N           0  (         0.00000000)  
PUNITF      Pub   N           0  (         0.00000000)  
PUNITG      Pub   N           0  (         0.00000000)  
PUNITH      Pub   N           0  (         0.00000000)  
PUNITI      Pub   N           0  (         0.00000000)  
PUNITJ      Pub   N           0  (         0.00000000)  
PUNITK      Pub   N           0  (         0.00000000)  
PUNITL      Pub   N           0  (         0.00000000)  
PUNITM      Pub   N           0  (         0.00000000)  
PUNITN      Pub   N           0  (         0.00000000)  
PUNITO      Pub   N           0  (         0.00000000)  
PTOTALA     Pub   N          67.4600  (        67.46000000)  
PTOTALB     Pub   N           0.0000  (         0.00000000)  
PTOTALC     Pub   N           0.0000  (         0.00000000)  
PTOTALD     Pub   N           0  (         0.00000000)  
PTOTALE     Pub   N           0  (         0.00000000)  
PTOTALF     Pub   N           0  (         0.00000000)  
PTOTALG     Pub   N           0  (         0.00000000)  
PTOTALH     Pub   N           0  (         0.00000000)  
PTOTALI     Pub   N           0  (         0.00000000)  
PTOTALJ     Pub   N           0  (         0.00000000)  
PTOTALK     Pub   N           0  (         0.00000000)  
PTOTALL     Pub   N           0  (         0.00000000)  
PTOTALM     Pub   N           0  (         0.00000000)  
PTOTALN     Pub   N           0  (         0.00000000)  
PTOTALO     Pub   N           0  (         0.00000000)  
XPTCK       Pub   C  "YES"  
MTUSER      Priv  C  "chris"                                  menumain.prg
SELECTNUM   Priv  N           1.00  (         1.00000000)     menumain.prg
SELECT      Priv  C  "1 "                                     menumain.prg
CONTINUE    Priv  C  "    "                                   newentry.prg
MDATE       Priv  C  "04/16/2018"                             newentry.prg
MPUDATE     Priv  C  "04/23/2018"                             newentry.prg
MPAYDATE    Priv  C  "  /  /    "                             newentry.prg
MGONEDATE   Priv  C  "  /  /    "                             newentry.prg
MSHPNAME    Priv  C  "ATTN: JOHN DOE"                         newentry.prg
MSHPCNME    Priv  C  "TEST COMPANY NAME             "         newentry.prg
MSHPAD1     Priv  C  "ANY STREET                    "         newentry.prg
MSHPAD2     Priv  C  "                              "         newentry.prg
MSHPCITY    Priv  C  "ANY CITY                      "         newentry.prg
MEMAIL      Priv  C  "test@email.com                        
                       "                                      newentry.prg
MPHOTO      Priv  C  "                              "         newentry.prg
MSHPST      Priv  C  "FL"                                     newentry.prg
MSTATE      Priv  C  "FL"                                     newentry.prg
MGONEPER    Priv  C  "  "                                     newentry.prg
MSHPZIP     Priv  C  "33312     "                             newentry.prg
MZIP        Priv  C  "33312     "                             newentry.prg
MSHIPVIA    Priv  C  "UPS GND"                                newentry.prg
MPUTIME     Priv  C  "1300"                                   newentry.prg
MGONETIME   Priv  C  "    "                                   newentry.prg
MCASH       Priv  C  " "                                      newentry.prg
MLETTER     Priv  C  " "                                      newentry.prg
MYTAX       Priv  C  " "                                      newentry.prg
MLABEL      Priv  C  "Y"                                      newentry.prg
MNUMBER     Priv  C  "TEST"                                   newentry.prg
MINVNO      Priv  C  "634835"                                 newentry.prg
MCUSTPO     Priv  C  "3123345             "                   newentry.prg
MSHIPFROM   Priv  C  "ACME Inc       "       newentry.prg
MCONTACT    Priv  C  "JOHN DOE              "                 newentry.prg
MPHONE      Priv  C  "954-111-2211          "                 newentry.prg
MFAX        Priv  C  "954-222-1122          "                 newentry.prg
MCELL       Priv  C  "                      "                 newentry.prg
MCOMMENT    Priv  C  "                                      
                                                    "         newentry.prg
MCOMMENT1   Priv  C  "                                      
                                                    "         newentry.prg
MACCTN      Priv  C  "TEST COMPANY NAME             "         newentry.prg
MSTREET     Priv  C  "ANY STREET                    "         newentry.prg
MCITY       Priv  C  "ANY CITY                      "         newentry.prg
MCHECKNO    Priv  C  "                              "         newentry.prg
MENGRAV     Priv  N           0  (         0.00000000)        newentry.prg
MTAX        Priv  N           4.0500000  (         4.05000000)  newentry.prg
MSHIPPING   Priv  N          15.57  (        15.57000000)     newentry.prg
MTOTAL      Priv  N            87.0800000  (        87.08000000)  newentry.prg
MPAYMENT    Priv  N           0  (         0.00000000)        newentry.prg
MCC         Priv  N           4  (         4.00000000)        newentry.prg
XSALESPER   Priv  C  "CN"                                     newentry.prg
MSNAME      Priv  C  "User  ext 510  "                        newentry.prg
MEVENTDTE   Priv  C  "04/23/2018"                             newentry.prg
MOPENACCT   Priv  C  "Y"                                      newentry.prg
MPAYPERSON  Priv  C  "TEST                          "         newentry.prg
ANS         Priv  C  "Y"                                      newentry.prg
ERASE       Priv  S                                           newentry.prg
MFILENAME   Priv  C  "634835"                                 dailwrte.prg
为了澄清这一点,我想通过解析这些数据来构建一个模型,每个文件只包含一个实体的数据:

public class Order
    {
        [ScaffoldColumn(false)]
        public int Id { get; set; }

        public string SLOCATION { get; set; }
        public string MQUOTE { get; set; }
        public string MCPAYDATE { get; set; }
        public string MTAXNO { get; set; }
        public string MCOUNTY { get; set; }
        public string MCUSTCAT { get; set; }
        public int MRREF { get; set; }
        public int MLREF { get; set; }
        public int MLREC { get; set; }
        public decimal MSUBTOT { get; set; }
        public string MCALL { get; set; }
        public string PCATA { get; set; }
        public string PCATB { get; set; }
        public string PCATC { get; set; }
        public string PCATD { get; set; }
        public bool PCATE { get; set; }
        public bool PCATF { get; set; }
        public bool PCATG { get; set; }
        public bool PCATH { get; set; }
        public bool PCATI { get; set; }
        public bool PCATJ { get; set; }
        public bool PCATK { get; set; }
        public bool PCATL { get; set; }
        public bool PCATM { get; set; }
        public bool PCATN { get; set; }
        public bool PCATO { get; set; }
        public int PQUANA { get; set; }
        public int PQUANB { get; set; }
        public int PQUANC { get; set; }
        public int PQUAND { get; set; }
        public bool PQUANE { get; set; }
        public bool PQUANF { get; set; }
        public bool PQUANG { get; set; }
        public bool PQUANH { get; set; }
        public bool PQUANI { get; set; }
        public bool PQUANJ { get; set; }
        public bool PQUANK { get; set; }
        public bool PQUANL { get; set; }
        public bool PQUANM { get; set; }
        public bool PQUANN { get; set; }
        public bool PQUANO { get; set; }
        public string PDONEA { get; set; }
        public string PDONEB { get; set; }
        public string PDONEC { get; set; }
        public string PDONED { get; set; }
        public bool PDONEE { get; set; }
        public bool PDONEF { get; set; }
        public bool PDONEG { get; set; }
        public bool PDONEH { get; set; }
        public bool PDONEI { get; set; }
        public bool PDONEJ { get; set; }
        public bool PDONEK { get; set; }
        public bool PDONEL { get; set; }
        public bool PDONEM { get; set; }
        public bool PDONEN { get; set; }
        public bool PDONEO { get; set; }
        public string PDTWOA { get; set; }
        public string PDTWOB { get; set; }
        public string PDTWOC { get; set; }
        public string PDTWOD { get; set; }
        public bool PDTWOE { get; set; }
        public bool PDTWOF { get; set; }
        public bool PDTWOG { get; set; }
        public bool PDTWOH { get; set; }
        public bool PDTWOI { get; set; }
        public bool PDTWOJ { get; set; }
        public bool PDTWOK { get; set; }
        public bool PDTWOL { get; set; }
        public bool PDTWOM { get; set; }
        public bool PDTWON { get; set; }
        public bool PDTWOO { get; set; }
        public decimal PUNITA { get; set; }
        public int PUNITB { get; set; }
        public int PUNITC { get; set; }
        public int PUNITD { get; set; }
        public int PUNITE { get; set; }
        public int PUNITF { get; set; }
        public int PUNITG { get; set; }
        public int PUNITH { get; set; }
        public int PUNITI { get; set; }
        public int PUNITJ { get; set; }
        public int PUNITK { get; set; }
        public int PUNITL { get; set; }
        public int PUNITM { get; set; }
        public int PUNITN { get; set; }
        public int PUNITO { get; set; }
        public decimal PTOTALA { get; set; }
        public int PTOTALB { get; set; }
        public int PTOTALC { get; set; }
        public int PTOTALD { get; set; }
        public int PTOTALE { get; set; }
        public int PTOTALF { get; set; }
        public int PTOTALG { get; set; }
        public int PTOTALH { get; set; }
        public int PTOTALI { get; set; }
        public int PTOTALJ { get; set; }
        public int PTOTALK { get; set; }
        public int PTOTALL { get; set; }
        public int PTOTALM { get; set; }
        public int PTOTALN { get; set; }
        public int PTOTALO { get; set; }
        public string XPTCK { get; set; }
        public string MTUSER { get; set; }
        public int SELECTNUM { get; set; }
        public string SELECT { get; set; }
        public string CONTINUE { get; set; }
        public string MDATE { get; set; }
        public string MPUDATE { get; set; }
        public string MPAYDATE { get; set; }
        public string MGONEDATE { get; set; }
        public string MSHPNAME { get; set; }
        public string MSHPCNME { get; set; }
        public string MSHPAD1 { get; set; }
        public string MSHPAD2 { get; set; }
        public string MSHPCITY { get; set; }
        public string MEMAIL { get; set; }
        public string MPHOTO { get; set; }
        public string MSHPST { get; set; }
        public string MSTATE { get; set; }
        public string MGONEPER { get; set; }
        public string MSHPZIP { get; set; }
        public string MZIP { get; set; }
        public string MSHIPVIA { get; set; }
        public string MPUTIME { get; set; }
        public string MGONETIME { get; set; }
        public string MCASH { get; set; }
        public string MLETTER { get; set; }
        public string MYTAX { get; set; }
        public string MLABEL { get; set; }
        public string MNUMBER { get; set; }
        public string MINVNO { get; set; }
        public string MCUSTPO { get; set; }
        public string MSHIPFROM { get; set; }
        public string MCONTACT { get; set; }
        public string MPHONE { get; set; }
        public string MFAX { get; set; }
        public string MCELL { get; set; }
        public string MCOMMENT { get; set; }
        public string MCOMMENT1 { get; set; }
        public string MACCTN { get; set; }
        public string MSTREET { get; set; }
        public string MCITY { get; set; }
        public string MCHECKNO { get; set; }
        public int MENGRAV { get; set; }
        public decimal MTAX { get; set; }
        public decimal MSHIPPING { get; set; }
        public decimal MTOTAL { get; set; }
        public decimal MPAYMENT { get; set; }
        public string MCC { get; set; }
        public string XSALESPER { get; set; }
        public string MSNAME { get; set; }
        public string MEVENTDTE { get; set; }
        public string MOPENACCT { get; set; }
        public string MPAYPERSON { get; set; }
        public string ANS { get; set; }
        public string MFILENAME { get; set; }
    }
请尝试以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data;
using System.Text.RegularExpressions;


namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.txt";
        static void Main(string[] args)
        {
            new Order(FILENAME);

        }
    }
    public class Order
    {
        [ScaffoldColumn(false)]
        public int Id { get; set; }

        public string SLOCATION { get; set; }
        public string MQUOTE { get; set; }
        public string MCPAYDATE { get; set; }
        public string MTAXNO { get; set; }
        public string MCOUNTY { get; set; }
        public string MCUSTCAT { get; set; }
        public int MRREF { get; set; }
        public int MLREF { get; set; }
        public int MLREC { get; set; }
        public decimal MSUBTOT { get; set; }
        public string MCALL { get; set; }
        public string PCATA { get; set; }
        public string PCATB { get; set; }
        public string PCATC { get; set; }
        public string PCATD { get; set; }
        public bool PCATE { get; set; }
        public bool PCATF { get; set; }
        public bool PCATG { get; set; }
        public bool PCATH { get; set; }
        public bool PCATI { get; set; }
        public bool PCATJ { get; set; }
        public bool PCATK { get; set; }
        public bool PCATL { get; set; }
        public bool PCATM { get; set; }
        public bool PCATN { get; set; }
        public bool PCATO { get; set; }
        public int PQUANA { get; set; }
        public int PQUANB { get; set; }
        public int PQUANC { get; set; }
        public int PQUAND { get; set; }
        public bool PQUANE { get; set; }
        public bool PQUANF { get; set; }
        public bool PQUANG { get; set; }
        public bool PQUANH { get; set; }
        public bool PQUANI { get; set; }
        public bool PQUANJ { get; set; }
        public bool PQUANK { get; set; }
        public bool PQUANL { get; set; }
        public bool PQUANM { get; set; }
        public bool PQUANN { get; set; }
        public bool PQUANO { get; set; }
        public string PDONEA { get; set; }
        public string PDONEB { get; set; }
        public string PDONEC { get; set; }
        public string PDONED { get; set; }
        public bool PDONEE { get; set; }
        public bool PDONEF { get; set; }
        public bool PDONEG { get; set; }
        public bool PDONEH { get; set; }
        public bool PDONEI { get; set; }
        public bool PDONEJ { get; set; }
        public bool PDONEK { get; set; }
        public bool PDONEL { get; set; }
        public bool PDONEM { get; set; }
        public bool PDONEN { get; set; }
        public bool PDONEO { get; set; }
        public string PDTWOA { get; set; }
        public string PDTWOB { get; set; }
        public string PDTWOC { get; set; }
        public string PDTWOD { get; set; }
        public bool PDTWOE { get; set; }
        public bool PDTWOF { get; set; }
        public bool PDTWOG { get; set; }
        public bool PDTWOH { get; set; }
        public bool PDTWOI { get; set; }
        public bool PDTWOJ { get; set; }
        public bool PDTWOK { get; set; }
        public bool PDTWOL { get; set; }
        public bool PDTWOM { get; set; }
        public bool PDTWON { get; set; }
        public bool PDTWOO { get; set; }
        public decimal PUNITA { get; set; }
        public int PUNITB { get; set; }
        public int PUNITC { get; set; }
        public int PUNITD { get; set; }
        public int PUNITE { get; set; }
        public int PUNITF { get; set; }
        public int PUNITG { get; set; }
        public int PUNITH { get; set; }
        public int PUNITI { get; set; }
        public int PUNITJ { get; set; }
        public int PUNITK { get; set; }
        public int PUNITL { get; set; }
        public int PUNITM { get; set; }
        public int PUNITN { get; set; }
        public int PUNITO { get; set; }
        public decimal PTOTALA { get; set; }
        public int PTOTALB { get; set; }
        public int PTOTALC { get; set; }
        public int PTOTALD { get; set; }
        public int PTOTALE { get; set; }
        public int PTOTALF { get; set; }
        public int PTOTALG { get; set; }
        public int PTOTALH { get; set; }
        public int PTOTALI { get; set; }
        public int PTOTALJ { get; set; }
        public int PTOTALK { get; set; }
        public int PTOTALL { get; set; }
        public int PTOTALM { get; set; }
        public int PTOTALN { get; set; }
        public int PTOTALO { get; set; }
        public string XPTCK { get; set; }
        public string MTUSER { get; set; }
        public int SELECTNUM { get; set; }
        public string SELECT { get; set; }
        public string CONTINUE { get; set; }
        public string MDATE { get; set; }
        public string MPUDATE { get; set; }
        public string MPAYDATE { get; set; }
        public string MGONEDATE { get; set; }
        public string MSHPNAME { get; set; }
        public string MSHPCNME { get; set; }
        public string MSHPAD1 { get; set; }
        public string MSHPAD2 { get; set; }
        public string MSHPCITY { get; set; }
        public string MEMAIL { get; set; }
        public string MPHOTO { get; set; }
        public string MSHPST { get; set; }
        public string MSTATE { get; set; }
        public string MGONEPER { get; set; }
        public string MSHPZIP { get; set; }
        public string MZIP { get; set; }
        public string MSHIPVIA { get; set; }
        public string MPUTIME { get; set; }
        public string MGONETIME { get; set; }
        public string MCASH { get; set; }
        public string MLETTER { get; set; }
        public string MYTAX { get; set; }
        public string MLABEL { get; set; }
        public string MNUMBER { get; set; }
        public string MINVNO { get; set; }
        public string MCUSTPO { get; set; }
        public string MSHIPFROM { get; set; }
        public string MCONTACT { get; set; }
        public string MPHONE { get; set; }
        public string MFAX { get; set; }
        public string MCELL { get; set; }
        public string MCOMMENT { get; set; }
        public string MCOMMENT1 { get; set; }
        public string MACCTN { get; set; }
        public string MSTREET { get; set; }
        public string MCITY { get; set; }
        public string MCHECKNO { get; set; }
        public int MENGRAV { get; set; }
        public decimal MTAX { get; set; }
        public decimal MSHIPPING { get; set; }
        public decimal MTOTAL { get; set; }
        public decimal MPAYMENT { get; set; }
        public string MCC { get; set; }
        public string XSALESPER { get; set; }
        public string MSNAME { get; set; }
        public string MEVENTDTE { get; set; }
        public string MOPENACCT { get; set; }
        public string MPAYPERSON { get; set; }
        public string ANS { get; set; }
        public string MFILENAME { get; set; }

        public Order() { }
        public Order(string filename)
        {

            string patternNumber = @"\d+(.\d+)?";

            //use string read instead of StreamReader if data is going from a web response
            StreamReader reader = new StreamReader(filename);
            string inputLine = "";
            string type = "";

            while ((inputLine = reader.ReadLine()) != null)
            {
                inputLine = inputLine.Trim();
                if (inputLine.Length > 0)
                {
                    if(!inputLine.StartsWith("\""))
                    {
                        string name = inputLine.Substring(0, 12).Trim();
                        type = inputLine.Substring(12, 9).Trim();
                        string value = inputLine.Substring(21).Trim();


                        switch (type)
                        {
                            case "Pub   C" :
                                Write(name, value.Replace("\"", "").Trim());
                                break;
                            case "Pub   N":
                                string strNumber = Regex.Match(value, patternNumber).Value;
                                object num = strNumber.Contains(".") ? decimal.Parse(strNumber) : int.Parse(strNumber);
                                Write(name, num);
                                break;
                            case "Pub   L":
                                bool true_false = value == ".F." ? false : true;
                                Write(name, true_false);
                                break;
                        }

                    }


                }
            }
        }
        public void Write(string name, object value)
        {
            switch(name)
            {
                case "Id" :
                    Id = Convert.ToInt32(value);
                    break;

                case "SLOCATION" :
                    SLOCATION = (string)value;
                    break;

                case "MQUOTE":
                    MQUOTE = (string)value;
                    break;

                case "MCPAYDATE":
                    MCPAYDATE = (string)value;
                    break;

                case "MTAXNO":
                    MTAXNO = (string)value;
                    break;

                case "MCOUNTY":
                    MCOUNTY = (string)value;
                    break;

                case "MCUSTCAT":
                    MCUSTCAT = (string)value;
                    break;

                case "MRREF":
                    MRREF = Convert.ToInt32(value);
                    break;

                case "MLREF":
                    MLREF = Convert.ToInt32(value);
                    break;

                case "MLREC":
                    MLREC = Convert.ToInt32(value);
                    break;

                case "MSUBTOT":
                    MSUBTOT = (decimal)value;
                    break;

                case "MCALL":
                    MCALL = (string)value;
                    break;

                case "PCATA":
                    PCATA = (string)value;
                    break;

                case "PCATB":
                    PCATB = (string)value;
                    break;

                case "PCATC":
                    PCATC = (string)value;
                    break;

                case "PCATD":
                    PCATD = (string)value;
                    break;

                case "PCATE":
                    PCATE = (bool)value;
                    break;

                case "PCATF":
                    PCATF = (bool)value;
                    break;

                case "PCATG":
                    PCATG = (bool)value;
                    break;

                case "PCATH":
                    PCATH = (bool)value;
                    break;

                case "PCATI":
                    PCATI = (bool)value;
                    break;

                case "PCATJ":
                    PCATJ = (bool)value;
                    break;

                case "PCATK":
                    PCATK = (bool)value;
                    break;

                case "PCATL":
                    PCATL = (bool)value;
                    break;

                case "PCATM":
                    PCATM = (bool)value;
                    break;

                case "PCATN":
                    PCATN = (bool)value;
                    break;

                case "PCATO":
                    PCATO = (bool)value;
                    break;

                case "PQUANA":
                    PQUANA = Convert.ToInt32(value);
                    break;

                case "PQUANB":
                    PQUANB = Convert.ToInt32(value);
                    break;

                case "PQUANC":
                    PQUANC = Convert.ToInt32(value);
                    break;

                case "PQUAND":
                    PQUAND = Convert.ToInt32(value);
                    break;

                case "PQUANE":
                    PQUANE = (bool)value;
                    break;

                case "PQUANF":
                    PQUANF = (bool)value;
                    break;

                case "PQUANG":
                    PQUANG = (bool)value;
                    break;

                case "PQUANH":
                    PQUANH = (bool)value;
                    break;

                case "PQUANI":
                    PQUANI = (bool)value;
                    break;

                case "PQUANJ":
                    PQUANJ = (bool)value;
                    break;

                case "PQUANK":
                    PQUANK = (bool)value;
                    break;

                case "PQUANL":
                    PQUANL = (bool)value;
                    break;

                case "PQUANM":
                    PQUANM = (bool)value;
                    break;

                case "PQUANN":
                    PQUANN = (bool)value;
                    break;

                case "PQUANO":
                    PQUANO = (bool)value;
                    break;

                case "PDONEA":
                    PDONEA = (string)value;
                    break;

                case "PDONEB":
                    PDONEB = (string)value;
                    break;

                case "PDONEC":
                    PDONEC = (string)value;
                    break;

                case "PDONED":
                    PDONED = (string)value;
                    break;

                case "PDONEE":
                    PDONEE = (bool)value;
                    break;

                case "PDONEF":
                    PDONEF = (bool)value;
                    break;

                case "PDONEG":
                    PDONEG = (bool)value;
                    break;

                case "PDONEH":
                    PDONEH = (bool)value;
                    break;

                case "PDONEI":
                    PDONEI = (bool)value;
                    break;

                case "PDONEJ":
                    PDONEJ = (bool)value;
                    break;

                case "PDONEK":
                    PDONEK = (bool)value;
                    break;

                case "PDONEL":
                    PDONEL = (bool)value;
                    break;

                case "PDONEM":
                    PDONEM = (bool)value;
                    break;

                case "PDONEN":
                    PDONEN = (bool)value;
                    break;

                case "PDONEO":
                    PDONEO = (bool)value;
                    break;

                case "PDTWOA":
                    PDTWOA = (string)value;
                    break;

                case "PDTWOB":
                    PDTWOB = (string)value;
                    break;

                case "PDTWOC":
                    PDTWOC = (string)value;
                    break;

                case "PDTWOD":
                    PDTWOD = (string)value;
                    break;

                case "PDTWOE":
                    PDTWOE = (bool)value;
                    break;

                case "PDTWOF":
                    PDTWOF = (bool)value;
                    break;

                case "PDTWOG":
                    PDTWOG = (bool)value;
                    break;

                case "PDTWOH":
                    PDTWOH = (bool)value;
                    break;

                case "PDTWOI":
                    PDTWOI = (bool)value;
                    break;

                case "PDTWOJ":
                    PDTWOJ = (bool)value;
                    break;

                case "PDTWOK":
                    PDTWOK = (bool)value;
                    break;

                case "PDTWOL":
                    PDTWOL = (bool)value;
                    break;

                case "PDTWOM":
                    PDTWOM = (bool)value;
                    break;

                case "PDTWON":
                    PDTWON = (bool)value;
                    break;

                case "PDTWOO":
                    PDTWOO = (bool)value;
                    break;

                case "PUNITA":
                    PUNITA = (decimal)value;
                    break;

                case "PUNITB":
                    PUNITB = Convert.ToInt32(value);
                    break;

                case "PUNITC":
                    PUNITC = Convert.ToInt32(value);
                    break;

                case "PUNITD":
                    PUNITD = Convert.ToInt32(value);
                    break;

                case "PUNITE":
                    PUNITE = Convert.ToInt32(value);
                    break;

                case "PUNITF":
                    PUNITF = Convert.ToInt32(value);
                    break;

                case "PUNITG":
                    PUNITG = Convert.ToInt32(value);
                    break;

                case "PUNITH":
                    PUNITH = Convert.ToInt32(value);
                    break;

                case "PUNITI":
                    PUNITI = Convert.ToInt32(value);
                    break;

                case "PUNITJ":
                    PUNITJ = Convert.ToInt32(value);
                    break;

                case "PUNITK":
                    PUNITK  = Convert.ToInt32(value);
                    break;

                case "PUNITL":
                    PUNITL = Convert.ToInt32(value);
                    break;

                case "PUNITM":
                    PUNITM = Convert.ToInt32(value);
                    break;

                case "PUNITN":
                    PUNITN = Convert.ToInt32(value);
                    break;

                case "PUNITO":
                    PUNITO = Convert.ToInt32(value);
                    break;

                case "PTOTALA":
                    PTOTALA = Convert.ToInt32(value);
                    break;

                case "PTOTALB":
                    PTOTALB = Convert.ToInt32(value);
                    break;

                case "PTOTALC":
                    PTOTALC = Convert.ToInt32(value);
                    break;

                case "PTOTALD":
                    PTOTALD = Convert.ToInt32(value);
                    break;

                case "PTOTALE":
                    PTOTALE = Convert.ToInt32(value);
                    break;

                case "PTOTALF":
                    PTOTALF = Convert.ToInt32(value);
                    break;

                case "PTOTALG":
                    PTOTALG = Convert.ToInt32(value);
                    break;

                case "PTOTALH":
                    PTOTALH = Convert.ToInt32(value);
                    break;

                case "PTOTALI":
                    PTOTALI = Convert.ToInt32(value);
                    break;

                case "PTOTALJ":
                    PTOTALJ = Convert.ToInt32(value);
                    break;

                case "PTOTALK":
                    PTOTALK = Convert.ToInt32(value);
                    break;

                case "PTOTALL":
                    PTOTALL = Convert.ToInt32(value);
                    break;

                case "PTOTALM":
                    PTOTALM = Convert.ToInt32(value);
                    break;

                case "PTOTALN":
                    PTOTALN = Convert.ToInt32(value);
                    break;

                case "PTOTALO":
                    PTOTALO = Convert.ToInt32(value);
                    break;

                case "XPTCK":
                    XPTCK = (string)value;
                    break;

                case "MTUSER":
                    MTUSER = (string)value;
                    break;

                case "SELECTNUM":
                    SELECTNUM = Convert.ToInt32(value);
                    break;

                case "SELECT":
                    SELECT = (string)value;
                    break;

                case "CONTINUE":
                    CONTINUE = (string)value;
                    break;

                case "MDATE":
                    MDATE = (string)value;
                    break;

                case "MPUDATE":
                    MPUDATE = (string)value;
                    break;

                case "MPAYDATE":
                    MPAYDATE = (string)value;
                    break;

                case "MGONEDATE":
                    MGONEDATE = (string)value;
                    break;

                case "MSHPNAME":
                    MSHPNAME = (string)value;
                    break;

                case "MSHPCNME":
                    MSHPCNME = (string)value;
                    break;

                case "MSHPAD1":
                    MSHPAD1 = (string)value;
                    break;


                case "MSHPAD2":
                    MSHPAD2 = (string)value;
                    break;

                case "MSHPCITY":
                    MSHPCITY = (string)value;
                    break;

                case "MEMAIL":
                    MEMAIL = (string)value;
                    break;

                case "MPHOTO":
                    MPHOTO = (string)value;
                    break;

                case "MSHPST":
                    MSHPST = (string)value;
                    break;

                case "MSTATE":
                    MSTATE = (string)value;
                    break;

                case "MGONEPER":
                    MGONEPER = (string)value;
                    break;

                case "MSHPZIP":
                    MSHPZIP = (string)value;
                    break;

                case "MZIP":
                    MZIP = (string)value;
                    break;

                case "MSHIPVIA":
                    MSHIPVIA = (string)value;
                    break;

                case "MPUTIME":
                    MPUTIME = (string)value;
                    break;

                case "MGONETIME":
                    MGONETIME = (string)value;
                    break;

                case "MCASH":
                    MCASH = (string)value;
                    break;

                case "MLETTER":
                    MLETTER = (string)value;
                    break;

                case "MYTAX":
                    MYTAX = (string)value;
                    break;

                case "MLABEL":
                    MLABEL = (string)value;
                    break;

                case "MNUMBER":
                    MNUMBER = (string)value;
                    break;

                case "MINVNO":
                    MINVNO = (string)value;
                    break;


                case "MCUSTPO":
                    MCUSTPO = (string)value;
                    break;

                case "MSHIPFROM":
                    MSHIPFROM = (string)value;
                    break;

                case "MCONTACT":
                    MCONTACT = (string)value;
                    break;

                case "MPHONE":
                    MPHONE = (string)value;
                    break;

                case "MFAX":
                    MFAX = (string)value;
                    break;

                case "MCELL":
                    MCELL = (string)value;
                    break;

                case "MCOMMENT":
                    MCOMMENT = (string)value;
                    break;

                case "MCOMMENT1":
                    MCOMMENT1 = (string)value;
                    break;

                case "MACCTN":
                    MACCTN = (string)value;
                    break;

                case "MSTREET":
                    MSTREET = (string)value;
                    break;

                case "MCITY":
                    MCITY = (string)value;
                    break;

                case "MCHECKNO":
                    MCHECKNO = (string)value;
                    break;

                case "MENGRAV":
                    MENGRAV = Convert.ToInt32(value);
                    break;

                case "MTAX":
                    MTAX = Convert.ToInt32(value);
                    break;

                case "MSHIPPING":
                    MSHIPPING = Convert.ToInt32(value);
                    break;

                case "MTOTAL":
                    MTOTAL = Convert.ToInt32(value);
                    break;

                case "MPAYMENT":
                    break;

                case "MCC":
                    MCC = (string)value;
                    break;

                case "XSALESPER":
                    XSALESPER = (string)value;
                    break;

                case "MSNAME":
                    MSNAME = (string)value;
                    break;

                case "MEVENTDTE":
                    MEVENTDTE = (string)value;
                    break;

                case "MOPENACCT":
                    MOPENACCT = (string)value;
                    break;

                case "MPAYPERSON":
                    MPAYPERSON = (string)value;
                    break;

                case "ANS":
                    ANS = (string)value;
                    break;

                case "MFILENAME":
                    MFILENAME = (string)value;
                    break;

            }
        }
    }
}

这与MVC或web应用程序无关。除非您知道这是什么格式,并且有一个可用的库,否则您必须编写自己的解析器。最后一个字段是文本、数字或.F。?如果是这样的话,F。代表?你试过写代码吗?@Kevin:我想.F。字段是前面L中的逻辑值,也可以是.T。这是旧FoxPlus系统中的数据,它将所有当前memoy变量转储到标准输出,然后通过管道传输到文本文件。F.表示可以逐行处理文件-使用子字符串分隔四个字段&基于第三个字段的switch语句识别第四个字段中的字符、数字或逻辑值。这将为我提供一个与文本文件格式相同的数据表,但文本文件包含单个实体的数据,左列向下的每个字段都是实体的属性,“L_值”字段是该属性的数据。你能改变你的代码来构建一个模型吗?我只是编辑了这个问题来澄清一下。我需要用这些数据建立一个像上面那样的模型。只要确保我没有犯任何愚蠢的错误。