Die Namensfunktion existiert nicht im aktuellen Kontext c # -Fehler

c# sqlbulkcopy

Frage

Ich schrieb ein Programm zu SqlBulkCopy, um CSV-Daten in MYSQL-Datenbank zu importieren. In der Funktion InsertDataIntoSQLServerUsingSQLBulkCopy lösen einige Fehler wie unten im Snapshot aus. Bildbeschreibung hier eingeben

Ich habe meinen Quellcode unten angehängt. Die Fehler werden in Zeile 54 ausgelöst.

 using System;
using System.Data;
using Microsoft.VisualBasic.FileIO;
using System.Data.SqlClient;

namespace ReadDataFromCSVFile
{
    static class Program
    {
        static void Main()
        {
            string csv_file_path = @"C:\Users\source\repos\WindowsService1\WindowsService1\bin\Debug\data.csv";
            DataTable csvData = GetDataTabletFromCSVFile(csv_file_path);
            Console.WriteLine("Rows count:" + csvData.Rows.Count);
            Console.ReadLine();
        }
        private static DataTable GetDataTabletFromCSVFile(string csv_file_path)
        {
            DataTable csvData = new DataTable();
            try
            {
                using (TextFieldParser csvReader = new TextFieldParser(csv_file_path))
                {
                    csvReader.SetDelimiters(new string[] { "," });
                    csvReader.HasFieldsEnclosedInQuotes = true;
                    string[] colFields = csvReader.ReadFields();
                    foreach (string column in colFields)
                    {
                        DataColumn datecolumn = new DataColumn(column);
                        datecolumn.AllowDBNull = true;
                        csvData.Columns.Add(datecolumn);
                    }
                    while (!csvReader.EndOfData)
                    {
                        string[] fieldData = csvReader.ReadFields();
                        //Making empty value as null
                        for (int i = 0; i < fieldData.Length; i++)
                        {
                            if (fieldData[i] == "")
                            {
                                fieldData[i] = null;
                            }
                        }
                        csvData.Rows.Add(fieldData);
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return csvData;
        }

       **line 54  function static void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvFileData)             {
            using (SqlConnection dbConnection = new SqlConnection("Data Source=.\SQLEXPRESS; Initial Catalog=MorganDB; Integrated Security=SSPI;"))
            {
                dbConnection.Open();
                using (SqlBulkCopy s = new SqlBulkCopy(dbConnection))
                {
                    s.DestinationTableName = "table1";

                    foreach (var column in csvFileData.Columns)
                        s.ColumnMappings.Add(column.ToString(), column.ToString());

                    s.WriteToServer(csvFileData);
                }
            }

        }
    }
}

Wenn jemand den Fehler bemerken könnte, würde ich sehr geschätzt werden. Vielen Dank!

Akzeptierte Antwort

Werden Sie mit Visual BASIC verwirrt? "Funktion" ist kein C # -Schlüsselwort. Ersetzen Sie "Funktion" je nach Anwendungsfall durch "privat" oder "öffentlich".

Außerdem sollten Sie "System.IO" anstelle von "Microsoft.VisualBasic.FileIo" in den Includes verwenden können.


Beliebte Antwort

Ich nehme an, Sie haben die "** Linie 54" hinzugefügt, um anzuzeigen, wo der Fehler liegt?

Von Ihrem Bildschirmgriff sieht es so aus, als ob der Text "Funktion" im Folgenden vorhanden ist.

   **line 54  function static void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvFileData)             {
        using (SqlConnection dbConnection = new SqlConnection("Data Source=.\SQLEXPRESS; Initial Catalog=MorganDB; Integrated Security=SSPI;"))
        { 

In C # müssen Sie (wie auch in VB) keine Funktion deklarieren. Die Linie sollte sein:

static void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvFileData)             
{
   // Rest of code
}


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum