我得到了一个CSV文件,但在文件中使用的文件中没有逗号分隔符。 如何将这些数据复制到我的数据库中?所以CSV文件和数据库应该有1列。如何将1列从CSV文件复制到SQL数据库?
这是我试过到目前为止:
System.Data.DataTable csvData = new System.Data.DataTable();
try
{
using (TextFieldParser csvReader = new TextFieldParser(csv_file_path, Encoding.GetEncoding("windows-1250"))) //windows 1250 is de correcte character encoding voor europese characters
{
csvReader.SetDelimiters(new string[] { "," }); //change this maybe to something???
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); // it return an error here saying that: `System.ArgumentException: Input array is longer than the number of columns in this table`
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
InsertDataIntoSQLServerUsingSQLBulkCopy(csvData, tablenaam);
return csvData;
所以对于CSV的例子是:
test123
test45,6
test789
而且在我的数据库将是完全相同的值。
很抱歉,但我不明白你的CSV文件“没有逗号separeting”的意思。你能提供一个你正在导入的数据的例子吗? –
@MaurizioPozzobon叶,现在我再次读到它的确有点模糊。我正在阅读一个CSV,但CSV的即时阅读包含了任何逗号分隔,所以这就是为什么我的数据库文件只有1列。我在我的问题中添加了一个例子 –
你可以调试它并查看在colFields中找到了多少列,我的意思是,fieldData.Length == ??如果你的文件有那些| | –