0

我在 sql server 中插入数据。这里是代码:

SqlParameter[] param = new SqlParameter[1];
            param[0] = new SqlParameter();
            param[0].ParameterName = "@Exch";
            param[0].SqlDbType = SqlDbType.Int;
            param[0].Value = "BSE";
            formObjSqlConnection.SQLConnection.Executes("LPExch..DeleteVarMargin", param);
            foreach (BseVar objBseVar in objListNseData)
            {

                currentIndex++;
                param = new SqlParameter[10];
                param[0] = new SqlParameter();
                param[0].ParameterName = "@Exch";
                param[0].SqlDbType = SqlDbType.Char;
                param[0].Value = "BSE";

                param[1] = new SqlParameter();
                param[1].ParameterName = "@Symbol";
                param[1].SqlDbType = SqlDbType.Char;
                param[1].Size = 10;
                param[1].Value = objBseVar.Symbol;



                param[2] = new SqlParameter();
                param[2].ParameterName = "@Series";
                param[2].SqlDbType = SqlDbType.Char;
                param[2].Value = "EQ";

                param[3] = new SqlParameter();
                param[3].ParameterName = "@SecurityVar";
                param[3].SqlDbType = SqlDbType.SmallMoney;

                param[3].Value = objBseVar.SecurityVar;

                param[4] = new SqlParameter();
                param[4].ParameterName = "@IndexVar";
                param[4].SqlDbType = SqlDbType.SmallMoney;

                param[4].Value = 0;


                param[5] = new SqlParameter();
                param[5].ParameterName = "@VarMargin";
                param[5].SqlDbType = SqlDbType.SmallMoney;

                param[5].Value = objBseVar.IndexVar;

                param[6] = new SqlParameter();
                param[6].ParameterName = "@AdhocMargin";
                param[6].SqlDbType = SqlDbType.SmallMoney;

                param[6].Value = objBseVar.SecurityVar - objBseVar.IndexVar;


                param[7] = new SqlParameter();
                param[7].ParameterName = "@VarMarginRate";
                param[7].SqlDbType = SqlDbType.SmallMoney;

                param[7].Value = objBseVar.IndexVar;

                formObjSqlConnection.SQLConnection.Executes("LPExch..UpdateOrAddCashVarMarginBSE", param);
                if (Convert.ToInt32(1 / progressChange * currentIndex) <= 100)
                    objImportMaster.UpdateProgressBar(Convert.ToInt32(1 / progressChange * currentIndex));
            }
            formObjSqlConnection.SQLConnection.Executes("LPExch..UpdateCashVarMarginBSEScripNo");

有没有其他方法可以在数据库中插入数据。问题是数据库需要太多时间来插入数据。另外我正在更新其他 UI 中的进度条。这是插入慢的原因吗?我们可以使用任何其他方式插入数据吗?

4

2 回答 2

1

现在,您一次发送每个插入。那很慢。如果您可以更改数据库,则查找表值参数并将表传递给您的函数,这样您就可以只发送一次所有记录。

如果您可以直接访问表,则还可以使用批量复制

于 2013-07-04T12:24:25.503 回答
0

如果您尝试插入许多记录,请考虑使用批量复制,它非常快。此处提供了一个示例。

于 2013-07-04T15:23:12.933 回答