2016-08-01 6 views
0

Ich habe derzeit einige Probleme mit meinem CSV zu SQL Converter. Mit dieser dritten Woche, in der ich C# gelernt habe, fange ich an, einige Sachen zu begreifen, aber das geht mir ein bisschen über den Kopf.CSV zu SQL Converter

Was ich versuche zu tun ist, die obere Zeile/Titel in jeden einzelnen Titel aufgeteilt und dann für den SQL-Code durch, anstatt manuell eingeben, wie ich es getan habe. Unten können Sie einen Teil meines Codes sehen, den ich bisher erstellt habe.

private void Form1_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      // your code here 
      string CSVFilePathName = @"C:\\CSV\\reg.csv"; 
      string[] Lines = File.ReadAllLines(CSVFilePathName); 
      string[] Fields; 
      //1st row must be column names; force lower case to ensure matching later on. 
      // get regs from filename 
      // get fieldnames from Lines[0] (first line of file) 
      // create a loop for fields array 
      string hdr = Lines[0]; 
      for (int i = 1; i < Lines.Length; i++) 
      { 
       Fields = Lines[i].Split(new char[] { ',' }); 
       CSVTextBox.AppendText(Fields[0] + "," + Fields[1] + "," + Fields[2] + "," + Fields[3] + Environment.NewLine); 
       // need a for loop for each field 
       // for (
            SQLTextBox.AppendText("INSERT INTO[dbo].[REGS]([SESTYPE],[REG],[LFL],[SUBVER]) VALUES('" + Fields[3] + "'" + Fields[0] + "'" + Fields[1] + "'" + Fields[2] + ")" + Environment.NewLine); 
       //  } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error is " + ex.ToString()); 
      throw; 
     } 

    } 

Dies alles läuft im Moment, ich habe nur Mühe, die Titel zu bekommen, um Teil des Codes zu werden. Jede Hilfe wäre willkommen.

Prost,

Antwort

1

Zuerst: Entfernen Sie den Try Catch. Wenn Sie eine Ausnahme erhalten, sollten Sie sie lesen, verstehen und löschen. Für Ihre SQLTextBox: Ich empfehle die String.Format Funktion zu verwenden. Auf diese Weise können Sie Strings mit unterschiedlichen Werten erstellen, die jedoch wesentlich einfacher zu lesen sind.

Für die Titel: Verwenden Sie Ihre Variable hdr Dies sollte den Titel enthalten. Dann können Sie es über string.Split (',') oder string.Split (';') teilen, abhängig von Ihrem Begrenzer