WinFuture-Forum.de: C# und MySQL - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

C# und MySQL


#1 Mitglied ist offline   nubie01 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 09. Februar 16
  • Reputation: 0

geschrieben 09. Februar 2016 - 09:04

Hallo zusammen!

Ich bräuchte dringend hilfe von Experten, da ich ein totaler Anfänger bin.

Ich habe eine vorhandene Excel Tabelle. Diese soll in eine Datenbank importiert werden.
Dann soll ein C# Programm erstellt werden, welches auf die Datenbank zugreift und aus den Daten verschieden Statistiken berechnet.
Die MySQL Datenbank habe ich soweit mittels xampp erstellt, wobei ich nicht genau weiß ob es so ganz richtig gemacht habe, da wenn ich die Excel-Tabelle importieren möchte immer wieder die Fehlermeldung "Ungültige Anzahl an Spalten im CSV-Import in Zeile 1" bekomme.
ICh habe die von mir erstellte Datenbank im Anhang hochgeladen.
Vielleicht hat einer von euch für mich einige nützliche Tipps bei der Vorgehensweise wie man am besten an eine solche Problemstellung rangeht.


MfG
0

Anzeige



#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 09. Februar 2016 - 09:38

Ich geh mal ganz stark davon aus, daß Dein Problem ein anderes ist: nämlich jenes, daß Excel trotz gegenteiliger Behauptungen *kein* CSV exportiert, sondern eher "SSV"= Semikolon-separierte Werte (statt Komma-separiert).

- Fütter Deiner Importfunktion also die entsprechenden Parameter hinzu.

- Außerdem brauchst Du noch für MySQL den Connector von Oracle.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   nubie01 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 09. Februar 16
  • Reputation: 0

geschrieben 09. Februar 2016 - 11:19

Vielen dank für den Hinweis.
Werde es mal versuchen und mich dann nochmal melden

MfG
0

#4 Mitglied ist offline   Future010 

  • Gruppe: aktive Mitglieder
  • Beiträge: 704
  • Beigetreten: 02. Januar 14
  • Reputation: 69
  • Geschlecht:Männlich

geschrieben 09. Februar 2016 - 12:26

using (SqlConnection connection = new SqlConnection("DBConnection"))
{
    using (SqlCommand command = new SqlCommand())
    {
        command.Connection = connection;      
        command.CommandType = CommandType.Text;
        command.CommandText = "INSERT into table01 (Name, NName) VALUES (@Name, @NName)";
        command.Parameters.AddWithValue("@Name", textbox1.text);
        command.Parameters.AddWithValue("@NName", textbox2.text);

        try
        {
            connection.Open();
            int recordsAffected = command.ExecuteNonQuery();
        }
        catch(SqlException)
        {
            MSGBox("Bla Bla");
        }
        finally
        {
            connection.Close();
        }
    }
}


Müsste fast funktionieren, mit ein paar Änderungen.
Ein(e) Danke(positive Bewertung) für einen guten Beitrag kann nicht schaden ;-) Danke!j Dateien und Ordner Verwaltung by Future010
0

#5 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 09. Februar 2016 - 13:03

Die Usings sind da bei c# gar nicht nötig. Ist doch kein VB. hrhrr

Dieser Beitrag wurde von RalphS bearbeitet: 09. Februar 2016 - 13:03

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#6 Mitglied ist offline   xploit 

  • Gruppe: aktive Mitglieder
  • Beiträge: 260
  • Beigetreten: 09. Mai 05
  • Reputation: 7

geschrieben 09. Februar 2016 - 13:38

Wenn du den CSV-Export anpassen willst, denn das scheint mir das Problem zu sein:

Habe den CSV-Exporter von da:

https://support.micr...de-de/kb/291296

vor Jahren mal angepasst, sieht jetzt so aus, viel Spass

Sub QuoteCommaExport()
   ' Dime all vars
   Dim DestFile As String
   Dim FileNum As Integer
   
   Dim fieldSep As String
   Dim fieldWrap As String
   
   Dim currCol As Long
   Dim currRow As Long
   Dim lastCol As Long
   Dim lastRow As Long
     

   DestFile = Application.GetSaveAsFilename(fileFilter:="Comma Separated Files (*.csv), *.csv")
         
   If DestFile = CStr(CBool(0)) Then Exit Sub
   
   fieldSep = InputBox("Whats the seperator? (Standard is Comma)", "Field Seperator", ",")
   fieldWrap = InputBox("Whats field wrapper? (Standard are double quotes)", "Field Seperator", """")
    
   ' Obtain next free file handle number.
   FileNum = FreeFile()

   ' Turn error checking off.
   On Error Resume Next

   ' Attempt to open destination file for output.
   Open DestFile For Output As #FileNum

   ' If an error occurs report it and end.
   If Err <> 0 Then
      MsgBox "Cannot open filename " & DestFile
      End
   End If

   ' Turn error checking on.
   On Error GoTo 0

    lastCol = ActiveSheet.Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column
    lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
   ' Loop for each row in selection.
   For currRow = 1 To lastRow

      ' Loop for each column in selection.
      For currCol = 1 To lastCol

         ' Write current cell's text to file with quotation marks.
         Print #FileNum, fieldWrap & ActiveSheet.Cells(currRow, _
            currCol).Text & fieldWrap;

         ' Check if cell is in last column.
         If currCol = lastCol Then
            ' If so, then write a blank line.
            Print #FileNum,
         Else
            ' Otherwise, write a comma.
            Print #FileNum, fieldSep;
         End If
      ' Start next iteration of ColumnCount loop.
      Next currCol
   ' Start next iteration of RowCount loop.
   Next currRow

   ' Close destination file.
   Close #FileNum
End Sub
        






Ansonsten gibt es für Excel auf MySQL-Connectoren, mit denen du ohne den C-Umweg in die Datenbank schreiben kannst.

Dieser Beitrag wurde von xploit bearbeitet: 09. Februar 2016 - 13:41

0

#7 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 09. Februar 2016 - 13:44

Es reicht, wenn man bei C# den Delimiter beim Import mit angibt. Bei Excel ist das das Semikolon fürs Feld und CRLF für die Zeile.
Erfreulicherweise geht das, weil sich kaum wer richtig an die CSV-Specs hält.

Dieser Beitrag wurde von RalphS bearbeitet: 09. Februar 2016 - 13:45

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#8 Mitglied ist offline   xploit 

  • Gruppe: aktive Mitglieder
  • Beiträge: 260
  • Beigetreten: 09. Mai 05
  • Reputation: 7

geschrieben 09. Februar 2016 - 14:58

>>Erfreulicherweise geht das, weil sich kaum wer richtig an die CSV-Specs hält.<<

Es heißt ja nur "Comma-Separated" - liegt doch nahe, das Semikolon zu benutzen! :D

(Wenn man für Mac exportiert, dann ist es nur CR)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0