我想將.csv文件上傳到SQL數據庫,按照以下代碼,當我試圖通過將文件路徑分配給變量來讀取.csv文件時我的程序運行良好,但是當我從文件上傳控件中檢索相同的PATH時,我收到了文件未找到異常。 任何人都可以請指導我如何擺脫這個錯誤。提前致謝。從文件上傳控制中讀取.csv文件給出文件未找到異常
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Microsoft.VisualBasic.FileIO;
using System.IO;
public partial class Exercise1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (fupPath.HasFile)
{
string csv_file_path = @"C:\TechnicalTest\GskTest\Csv\SampleData.csv";
//string csv_file_path = Path.Combine(Server.MapPath("~/File"), fupPath.FileName);
DataTable csvData = GetDataTabletFromCSVFile(csv_file_path);
Response.Write("Rows count:" + csvData.Rows.Count);
}
}
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;
}
//protected void btnSubmit_Click(object sender, EventArgs e)
//{
// if(fupPath.HasFile)
// {
// //string csv_file_path = @"C:\TechnicalTest\GskTest\Csv\SampleData.csv";
// String csv_file_path = Path.Combine(Server.MapPath("~/File"), fupPath.FileName);
// fupPath.SaveAs(csv_file_path);
// //string path = Server.MapPath("~/")
// //String csv_file_path = Server.MapPath(fupPath.FileName).ToString();
// //csv_file_path = csv_file_path.Replace(@"\\","\"");
// DataTable csvData = GetDataTabletFromCSVFile(csv_file_path);
// Response.Write("Rows count:" + csvData.Rows.Count);
// }
//}
}
如果我使用fupPath.SaveAs(csv_file_path);我得到DirectoryNotFound異常是由用戶代碼錯誤 – user3230171