name 함수가 현재 컨텍스트 c # error에 없습니다.

c# sqlbulkcopy

문제

나는 SqlBulkCopy에 프로그램을 작성하여 CSV 데이터를 MYSQL 데이터베이스로 가져 왔습니다. InsertDataIntoSQLServerUsingSQLBulkCopy 함수에서 아래의 스냅 샷과 같은 일부 오류를 트리거합니다. 여기에 이미지 설명을 입력하십시오.

내 소스 코드를 아래에 첨부했습니다. 오류는 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);
                }
            }

        }
    }
}

누군가가 오류를 잡을 수 있다면 정말 감사하겠습니다. 고맙습니다!

수락 된 답변

Visual BASIC과 혼동을 느끼고 있습니까? "function"은 C # 키워드가 아닙니다. 사용 케이스에 따라 "function"을 "private"또는 "public"으로 바꿉니다.

또한 포함에서 "Microsoft.VisualBasic.FileIo"대신 "System.IO"를 사용할 수 있어야합니다.


인기 답변

나는 당신이 '** Line 54'를 추가하여 오류가 어디에 있는지를 나타낼 것이라고 추정한다.

귀하의 화면 잡아에서 텍스트 '함수'가 아래에 존재하는 것처럼 보입니다.

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

C #에서는 VB에서하는 것처럼 '함수'를 선언 할 필요가 없습니다. 행은 다음과 같아야합니다.

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


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.