la fonction name n'existe pas dans le contexte actuel c # error

c# sqlbulkcopy

Question

J'ai écrit un programme sur SqlBulkCopy pour importer des données CSV dans une base de données MYSQL. Dans la fonction InsertDataIntoSQLServerUsingSQLBulkCopy, provoquant des erreurs comme ci-dessous instantané. entrez la description de l'image ici

J'ai attaché mon code source en bas. Les erreurs se déclenchent à la ligne 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);
                }
            }

        }
    }
}

Si quelqu'un pouvait attraper l'erreur, je serais vraiment apprécié. Je vous remercie!

Réponse acceptée

Êtes-vous confus avec Visual Basic? "fonction" n'est pas un mot clé C #. Remplacez "fonction" par "privé" ou "public", selon le cas d'utilisation.

En outre, vous devriez pouvoir utiliser "System.IO" au lieu de "Microsoft.VisualBasic.FileIo" dans le includes.


Réponse populaire

Je suppose que vous avez ajouté le '** Ligne 54' pour indiquer où se trouve l'erreur?

De votre capture d'écran, il semble que le texte "fonction" est présent dans le dessous.

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

En C #, vous n'avez pas besoin (en fait, ne pouvez pas) déclarer la fonction comme vous le faites en VB. La ligne devrait être:

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


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi