【发布时间】:2012-11-11 22:02:05
【问题描述】:
如何从数据集中插入大约 300 条记录到数据库中? 需要5分钟左右 我想知道有没有什么方法可以使用数据集来改进这个过程?
编辑: 这是我的代码,当用户单击 sav 时,它将执行以下过程:
public void ProcessSkalaGaji(MyDataSet myDataSet, DateTime tanggalBerlaku, decimal percentage)
{
GenerateNewSkalaGaji(myDataSet, tanggalBerlaku, percentage);
InsertSkalaGaji(myDataSet);
}
private void GenerateNewSkalaGaji(MyDataSet myDataSet, DateTime tanggalBerlaku, decimal percentage)
{
// GetLastSkalaGaji returns about 300 rows
MyDataSet.SkalaGajiDataTable skalaGajiTable = GetLastSkalaGaji();
foreach (MyDataSet.SkalaGajiRow skalaGajiRow in skalaGajiTable.Rows)
{
MyDataSet.SkalaGajiRow newSkalaGajiRow = myDataSet.SkalaGaji.NewSkalaGajiRow();
newSkalaGajiRow.TanggalBerlaku = tanggalBerlaku;
newSkalaGajiRow.Golongan = skalaGajiRow.Golongan;
newSkalaGajiRow.MasaKerja = skalaGajiRow.MasaKerja;
newSkalaGajiRow.GajiPokok = skalaGajiRow.GajiPokok + (skalaGajiRow.GajiPokok * percentage / 100);
myDataSet.SkalaGaji.AddSkalaGajiRow(newSkalaGajiRow);
}
}
private string InsertSkalaGaji(MyDataSet myDataSet)
{
string errorMsg = string.Empty;
if (myDataSet.HasChanges() && !myDataSet.HasErrors)
{
int rowsAffected = Adapter.Update(myDataSet.SkalaGaji);
if (rowsAffected == 0)
{
errorMsg = "No rows inserted! Please contact your administrator";
}
}
return errorMsg;
}
谢谢
【问题讨论】:
-
发布一些代码,以便我们可以检测到哪里需要优化
-
300 实际上是指 3M 或者你为什么提到 large?您还应该提到 sql 和表模式。你在使用交易吗?
-
每条记录 1 秒?贴一些代码。
-
通常数据集不会花很长时间将其插入数据库。特别是当它只有 300 行时。所以是的,正如 Agustin Meriles 所说,如果你能粘贴一些代码会很有帮助。
-
@tim: 我应该怎么称呼?抱歉我的英语不好 :) 我已经编辑了问题,感谢您的关注
标签: c# insert dataset large-data