【问题标题】:CSV to SQL database displays `?` instead of üCSV 到 SQL 数据库显示 `?` 而不是 ü
【发布时间】:2016-12-16 09:51:36
【问题描述】:

我有一个从 CSV 文件创建 SQL 数据库的函数。但是当它读取带有变音符号的字符时,它会在我的 SQL 表中显示一个问号。我怎样才能解决这个问题?这是我的代码:

private static System.Data.DataTable GetDataTabletFromCSVFile(string csv_file_path, string tablenaam)
{
    System.Data.DataTable csvData = new System.Data.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)
    {
    }
    InsertDataIntoSQLServerUsingSQLBulkCopy(csvData,tablenaam);
    return csvData;
}

【问题讨论】:

  • 检查您的字符编码和本地化是否为数据库、表、列等设置正确。
  • 另外,不要吞下异常。

标签: c# sql visual-studio csv


【解决方案1】:

这可能会欺骗你

TextFieldParser csvReader = new TextFieldParser(csv_file_path, Encoding.GetEncoding(utf-8))

如果编码不是从文件中确定的,则使用的字符编码。默认为 UTF8。因此,您需要根据您的要求更改代码。这是Code Page Identifiers的列表

【讨论】:

  • 我收到了the name 'utf' does not exist in the current context
  • TextFieldParser csvReader = new TextFieldParser(csv_file_path, Encoding.GetEncoding("windows-1250")) 解决了,非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2022-01-10
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多