C# und MySQL
#1
geschrieben 09. Februar 2016 - 09:04
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
Anzeige
#2
geschrieben 09. Februar 2016 - 09:38
- Fütter Deiner Importfunktion also die entsprechenden Parameter hinzu.
- Außerdem brauchst Du noch für MySQL den Connector von Oracle.
#3
geschrieben 09. Februar 2016 - 11:19
Werde es mal versuchen und mich dann nochmal melden
MfG
#4
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.
#5
geschrieben 09. Februar 2016 - 13:03

Dieser Beitrag wurde von RalphS bearbeitet: 09. Februar 2016 - 13:03
#6
geschrieben 09. Februar 2016 - 13:38
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
#7
geschrieben 09. Februar 2016 - 13:44
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
#8
geschrieben 09. Februar 2016 - 14:58
Es heißt ja nur "Comma-Separated" - liegt doch nahe, das Semikolon zu benutzen!

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