Soooooooo ...我有一個SQL Server表,我需要從我導入的csv文件的內容進行更新。實質上,如果我有一個記錄的鍵與單元格A的內容匹配,我將用單元格B的內容更新該記錄的一個字段。從我在其他地方找到的一些片段看來,我似乎需要創建一個臨時表格,做如下:從CSV文件更新SQL Server表?
protected void UploadBtn_Click(object sender, EventArgs e)
{
string csvPath = Server.MapPath("~/Uploads/") + Path.GetFileName(RadAsyncUpload1.UploadedFiles[0].FileName);
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Customer Ref", typeof(string)),
new DataColumn("Inventory #", typeof(string)),
});
string csvData = File.ReadAllText(csvPath);
foreach (string row in csvData.Split('\n'))
{
if (!string.IsNullOrEmpty(row))
{
dt.Rows.Add();
int i = 0;
foreach (string cell in row.Split(','))
{
dt.Rows[dt.Rows.Count - 1][i] = cell;
i++;
}
}
}
}
}
}
但我很好難倒到哪兒何去何從......
任何意見/建議/指針將不勝感激!
感謝一如既往,
保羅
我不認爲這是一種將數據插入到SQL服務器的真正高效的方法......如果您只需要將數據插入到CSV表中,您是否嘗試過OPENROWSET?然後,您可以將邏輯放入SP並從代碼運行。 – asemprini87
@ asemprini87不知道我是否正確理解你......我沒有插入數據,只做了更新。 – PaulBinCT2
這聽起來像一個表值參數將是最簡單的解決方案。你可以用你需要的兩列創建一個用戶定義的表類型。然後你用這些值加載一個DataTable。最後但並非最不重要的是,您創建一個存儲過程來接收這些數據並執行更新。從程序內部,您可以像處理任何其他表一樣處理參數。 –