0
我從外部獲取.csv文件,並使用OLEDB寫入數據表。 它運行良好,但連續不會出現在表中的一個值。寫入DataTable時缺少.CSV的某些值
我的代碼寫入到數據表是
File1.PostedFile.SaveAs(Server.MapPath("Uploads\\" + StrFileName));
TextBox2.Text = StrFileName;
int i = 0;
string strCon;
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Uploads\\") + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"";//
String abc = TextBox2.Text;
OleDbConnection olecon = new OleDbConnection(strCon);
OleDbDataAdapter myda = new OleDbDataAdapter("SELECT * FROM [" + abc + "]", strCon);
DataTable myds = new DataTable();
myda.Fill(myds);
我的問題是,得到.CSV我讀一個接一個行插入 我的SQL Server表的表後,但其中一箇中間行有.CSV文件中的數據,但沒有出現在數據表中。
這是怎麼了我得到的數據:在一排(例如:2507141012)
for (i = 0; i <= myds.Rows.Count - 1; i++)
{
String si21;
String si11 = "0";
if (myds.Rows[i][5].ToString().Length == 9)
{
si21 = si11 + myds.Rows[i][5].ToString();
}
else
{
si21 = myds.Rows[i][5].ToString();
}
}
只有一個特定的值有10位丟失,但其他行的其餘10位值通常出現。 在SQL表中插入像
109 0408143119 NULL NULL 0 2.3 NULL NULL NULL NULL NULL
110 --heres value miss-- NULL NULL NULL 0 2.19 NULL NULL NULL NULL
111 0408143117 NULL NULL NULL 0 2.29 NULL NULL NULL NULL
有人幫助我。
嘗試LumenWorks csv閱讀器http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader它可能會幫助你。 – 2014-08-27 10:24:55
在'i == 109'的循環中設置一個條件斷點。看一下第109行的最後一列,可能會有一個缺失的行分隔符。 – mrtig 2014-08-27 13:20:01
僅在數據表中缺失值,但它出現在.CSV文件中。在讀取和寫入數據表後,我正在做循環。我假設問題在於讀取.CSV文件。如何從.CSV獲取整個數據到DataTable中。 – 2014-08-28 01:35:01