SQL使用游标把excel导入数据库

我现在有一个表,想把Excel中的十几万跳数据使用游标插入,中途要对excel中的数据进行判断操作,急啊~

我的建议是不要使用游标插入 否则会很慢
你可以先把excel中的数据全部倒入到数据库中 再用sql对数据进行处理

不知道怎么能用游标上传数据,倒是数量多了用游标肯定会很慢。写个存储过程,条件写在存储过程中。 protected void btnUpload_Click(object sender, EventArgs e)
{

        try
        {
            Er.Visible = true;
            if (!FileUpload_Onboard.HasFile)
            {
                lblError.Text = "未选择文件";
                return;
            }

            DataTable dtExcel = new DataTable();
            //dtExcel = CommonCodes.ExcelHelper.ImpExcelDt(FileUpload_Onboard);
            dtExcel = GetExcelTable(CommonCodes.ExcelHelper.ImpExcelDt(FileUpload_Onboard));
            if (dtExcel == null)
            {
                lblError.Text = "导入文件无法识别";
                return;
            }
            if (dtExcel.Rows.Count <= 0)
            {
                lblError.Text = "没有数据";
                return;
            }

            DataTable dtInput = dtExcel.Select("CONVERT([EmployeeNo],'System.String') <> ''").CopyToDataTable();
            DataSet ds = new DataSet();

            int count = 0;
            DataTable dtError = new DataTable();
            dtError.Columns.Add("EmployeeNo");
            dtError.Columns.Add("Errormessage");
            //dtExcel = GetExcelTable(ds.Tables["EmployeeNo"]);
            foreach (DataRow row in dtInput.Rows)
            {
                DataTable dt = new DataTable();
                SqlParameter[] pars = new SqlParameter[dtExcel.Columns.Count + 2];
                for (int i = 0; i < dtExcel.Columns.Count; i++)
                {
                    pars[i] = new SqlParameter("@" + dtExcel.Columns[i].ColumnName.Replace("\\", "").Replace("/", "").Replace(" ", ""), row[i].ToString());
                }
                pars[dtExcel.Columns.Count] = new SqlParameter("@TrainingBatch", TrainingBatch.Text);
                pars[dtExcel.Columns.Count +1] = new SqlParameter("@ModifyBy", modifyBy());
                try
                {
                    dt = SqlHelper.ExecuteDataTable(SqlHelper.ConnectionString, CommandType.StoredProcedure, "usp_TrainingRecord_Bulupload", pars);
                    if (dt.Rows.Count > 0 && !String.IsNullOrEmpty(dt.Rows[0][0].ToString()))
                    {
                        DataRow newRow = dtError.NewRow();
                        newRow.BeginEdit();
                        newRow["EmployeeNo"] = row["EmployeeNo"].ToString();
                        newRow["Errormessage"] = dt.Rows[0][0].ToString();
                        newRow.EndEdit();
                        dtError.Rows.Add(newRow);
                    }
                    else
                    {
                        count++;
                    }
                }
                catch (Exception ex)
                {
                    DataRow newRow = dtError.NewRow();
                    newRow.BeginEdit();
                    newRow["EmployeeNo"] = row["EmployeeNo"].ToString();
                    newRow["Errormessage"] = ex.Message;
                    newRow.EndEdit();
                    dtError.Rows.Add(newRow);
                }
            }
            Alert("上传成功,共" + count + "/" + dtInput.Rows.Count.ToString() + "条");
            rep_ErrorList_Onboard.DataSource = dtError;
            rep_ErrorList_Onboard.DataBind();
            Button1.Visible = true;
        }
        catch (Exception ex)
        {
            lblError.Text = ex.Message;
        }
    }

将excel整理的表结构生成insert建表sql:https://download.csdn.net/download/gongjin28_csdn/85486975