我們需要定期導入CSV,看起來像這樣:是唯一導入數據 - C#/ SQL Server的解決方案
Name,SpecID,TestResult1,TestResult2,TestResult3
Alex,ASD123,3.23,452.2,232
Craig,DFG444,453.56,345.3,23
得到的數據存儲是這樣的:
SPECIMENTABLE (name,specid,SPECIMENTABLEID)
Alex,ASD123,1
Craig,DFG444,2
和
RESULTTABLE (testresult,result,SPECIMENTABLEID)
TestResult1,3.23,1
TestResult2,452.2,1
TestResult3,232,1
TestResult1, 453.56,2
etc
即時傾銷這樣的數據:
public void DumpQuickLabDump()
{
// T-SQL Connection
string connection = "Data Source=gaia;Initial Catalog=SalesDWH;Integrated Security=True";
// Get the data into the DataTable
//dtData = GetData(...);
// Create an object of SqlBulkCopy
SqlBulkCopy objSBC = new SqlBulkCopy(connection);
// Specify the destination table
objSBC.BulkCopyTimeout = 0;
objSBC.BatchSize = 10000;
objSBC.DestinationTableName = "SpecimenTable";
// Write the data to the SQL Server
objSBC.WriteToServer(QuickLabDump);
}
public void DumpTestResults()
{
// T-SQL Connection
string connection = "Data Source=gaia;Initial Catalog=SalesDWH;Integrated Security=True";
// Get the data into the DataTable
//dtData = GetData(...);
// Create an object of SqlBulkCopy
SqlBulkCopy objSBC = new SqlBulkCopy(connection);
// Specify the destination table
objSBC.BulkCopyTimeout = 0;
objSBC.BatchSize = 10000;
objSBC.DestinationTableName = "ResultTable";
// Write the data to the SQL Server
objSBC.WriteToServer(TestResults);
}
有時客戶端會向我提交上傳的CSV文件,然後幾天後,他們會導入另一個CSV文件,但它會有一定比例的相同記錄。
我該如何避免重複數據? (請注意,從一個CSV文件中的數據庫中填充了兩個表格)
解決方案可以是.NET或sql。
太感謝你了
你熟悉三角洲是什麼本聲明?也聽起來像你可能需要改變你的查詢添加SQL來檢查IfExist或NotExist取決於你的邏輯,以確定是否更新行或行,我會建議一個日期或時間戳上的關鍵字段的Delta,因爲你怎麼知道即使日期是當前日期,也是正確的如果數據回滾或意外更改,該怎麼辦? – MethodMan 2012-01-03 22:32:19
@DJKRAZE我可能只是在字段組合上做 – 2012-01-03 22:35:40
@DJKRAZE不,我不知道delta是什麼 – 2012-01-03 22:36:17