我得到了一個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 == ??如果你的文件有那些| | –