la funzione name non esiste nell'errore di contesto corrente c #

c# sqlbulkcopy

Domanda

Ho scritto un programma su SqlBulkCopy per importare i dati CSV nel database MYSQL. Nella funzione InsertDataIntoSQLServerUsingSQLBulkCopy che attiva alcuni errori come sotto l'istantanea. inserisci la descrizione dell'immagine qui

Ho allegato il mio codice sorgente in basso. Gli errori si stanno verificando sulla linea 54.

 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);
                }
            }

        }
    }
}

Se qualcuno potesse cogliere l'errore sarei davvero apprezzato. Grazie!

Risposta accettata

Ti stai confondendo con Visual BASIC? "function" non è una parola chiave C #. Sostituisci "funzione" con "privato" o "pubblico", a seconda del caso d'uso.

Inoltre, dovresti essere in grado di utilizzare "System.IO" anziché "Microsoft.VisualBasic.FileIo" negli include.


Risposta popolare

Presumo che tu abbia aggiunto la '** Line 54' per indicare dove si trova l'errore?

Dal tuo schermo, però, sembra che il testo "funzione" sia presente in basso.

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

In C # non è necessario (in effetti non è possibile) dichiarare 'funzione' come si fa in VB. La linea dovrebbe essere:

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


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché