我使用VS2005 C#和SQL Server 2005SQL與Excel數據一起附上「User.Identity.Name」導入到SQL Server數據庫
我有進口的數據在電子表格中插入一個Excel文件導入數據庫。
但是,爲了改進它,我想對每個導入實施某種「日誌記錄」。
對於用戶導入的每一行數據,都會有一列存儲登錄用戶的名稱,即User.Identity.Name
。
下面是我的Excel導入代碼的代碼片段:
// Create Connection to Excel Workbook
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strUploadFileName + ";Extended Properties=Excel 8.0;";
using (OleDbConnection connection = new OleDbConnection(connStr))
{
OleDbCommand command = new OleDbCommand("Select [User ID], [Username], [Age], [Address], [Date of Reg], [Membership Type], [Membership Expiry] FROM [sheet1$]", connection);
//would like to insert 'User.Identity.Name' into column 'userlog'
connection.Open();
Console.WriteLine("Connection Opened");
// Create DbDataReader to Data Worksheet
using (DbDataReader dr = command.ExecuteReader())
{
// SQL Server Connection String
string sqlConnectionString = "Data Source=<DS>";
// Bulk Copy to SQL Server
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "UserData";
bulkCopy.WriteToServer(dr);
}
}
}
我不知道,因爲SELECT
聲明將我從中導入數據的sheet1$
唯一的變量我如何能做到這一點,所以我我不知道如何將另一個變量從另一個源包含到sql查詢中。我需要有經驗的建議。
謝謝你們提前提供任何幫助。
編輯:
我有.csv
類型另一個導入方法。由於SELECT
聲明與我用於.xls
的聲明不同,我應該如何更改它?下面的代碼片段:
string dir = @"C:\...\UploadFiles";
string mycsv = DateTime.Now.ToString("yyyyMMddHHmmss") + strExtension;
// Save the Excel spreadsheet on server.
UserImport.SaveAs(dir + mycsv);
// Create Connection to Excel Workbook
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dir +
";Extended Properties=Text;";
using (OleDbConnection ExcelConnection = new OleDbConnection(connStr))
{
OleDbCommand ExcelCommand = new OleDbCommand(
"SELECT [User ID], [Username], [Age], [Address],
[Date of Reg], [Membership Type], [Membership Expiry]
FROM " + mycsv, ExcelConnection);
OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter(ExcelCommand);
ExcelConnection.Open();
using (DbDataReader dr = ExcelCommand.ExecuteReader())
{
// SQL Server Connection String
string sqlConnectionString = "Data Source=<DS>";
// Bulk Copy to SQL Server
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "UserData";
bulkCopy.WriteToServer(dr);
//Response.Write("<script>alert('User Data imported');</script>");
}
}
}
謝謝
Pilgerstorfer嗨更新,對不起,我在SQL查詢中犯了一個錯誤。我想爲它做一個'INSERT'語句。我應該如何改變查詢?謝謝 – gymcode
我想出了更新查詢。非常感謝,您的解決方案就是我正在尋找的。 – gymcode
很高興我能幫忙! –