我想知道,目前,客户端上传文件到服务器上的一个目录,然后服务器可以使用该文件(csv文件)来更新SQL数据库。服务器可以使用客户端上的文件而不上传到服务器吗? ASP.NET
这是服务器可以使用该文件的唯一方法吗?它首先被上传到服务器?或者你可以使用该文件而不上传到服务器的目录?
(使用的Visual Studio 2012,C#和asp.net)
代码更新---
ASP上传文件。 (我知道的代码可以是书面更好的清洁,但我的测试代码是从来没有干净的)
//Uplod file to the server
FileUpload1.SaveAs(serverUploadDir + FileUpload1.FileName);
//Use the Uploaded File to update the sql table
dbConn.UploadCSVToSql(serverUploadDir + FileUpload1.FileName);
的UploadCSVToSql
public void UploadCSVToSql(string filepath)
{
//string filepath = "C:\\Copy of ABI Employee List.csv";
StreamReader sr = new StreamReader(filepath);
string line = sr.ReadLine();
string[] value = line.Split(',');
DataTable dt = new DataTable();
DataRow row;
foreach (string dc in value)
{
dt.Columns.Add(new DataColumn(dc));
}
while (!sr.EndOfStream)
{
value = sr.ReadLine().Split(',');
if (value.Length == dt.Columns.Count)
{
row = dt.NewRow();
row.ItemArray = value;
dt.Rows.Add(row);
}
}
SqlBulkCopy bc = new SqlBulkCopy(conn.ConnectionString, SqlBulkCopyOptions.TableLock);
bc.DestinationTableName = "MainDump";
bc.BatchSize = dt.Rows.Count;
conn.Open();
bc.WriteToServer(dt);
bc.Close();
conn.Close();
Mayby你可以尝试解析该文件在C#程序并执行SQL在C#中也... – Mathlight
你可以只读取文件中的数据和你需要使用一个StreamReader做什么() (或类似)。您也可以使用正确的权限(显然它不在服务器上)读取LAN上的文件(显然)。 – Dave
您不需要将其上传到目录,您可以将其发回服务器并将其存储在内存中 –