我編寫了一個應用程序,用OleDb創建一個excel文件,問題是當程序運行一個foreach循環時,它總是在行中寫入相同的數據,而不是不同的值循環中的對象。c#Oledb在foreach循環中添加參數列表
的代碼是:
foreach(var user in userList)
{
cmd.CommandText = @"INSERT INTO [User](Id , Name , Code, Username, Location,
CompanyCode, MyDate, Email, MyNote)
VALUES(@Id, @Name, @Code, @Username, @Location)";
cmd.Parameters.AddRange(new OleDbParameter[]
{
new OleDbParameter{ ParameterName = "@Id", Value = user.ID},
new OleDbParameter{ ParameterName = "@Name", Value = user.NAME ?? string.Empty},
new OleDbParameter{ ParameterName = "@Code", Value = user.CODE ?? string.Empty},
new OleDbParameter{ ParameterName = "@Username", Value = user.USERNAME ?? string.Empty},
new OleDbParameter{ ParameterName = "@Location", Value = user.LOCATION ?? string.Empty},
});
cmd.ExecuteNonQuery();
}
我有12個用戶,但Excel文件中有12個行使用相同的用戶。 實施例:
ExcelRow ID NAME CODE USERNAME LOCATION
1 1 Fra 15 Fra NY
2 1 FRA 15 Fra NY
3 1 FRA 15 Fra NY
4 1 FRA 15 Fra NY
5 .......
相反,如果我寫正常查詢等:
cmd.CommandText = @"INSERT INTO [User](Id , Name , Code, Username, Location, CompanyCode, MyDate, Email, MyNote) VALUES(" + company.ID + ", '" + company.NAME + "', '" + company.CODE + "', '" + company.USERNAME + "', '" + company.CODE_LOCATION + "')";
它的工作原理和寫文件在12個不同的用戶。 我該如何解決這個問題? 謝謝你,對不起我的英語不好。
在您的參數,例如你使用其中作爲你的連擊查詢字符串使用變量公司對象變量用戶:像
使用的東西。 – apomene