C# efault.give me dtExcel.Rows.Count result…(作为测试)更改为:Count+=cmd.ExecuteNonQuery();在int k=cmd.ExecuteNonQuery()中,然后在k=0时进入调试并检查。通过这

C# efault.give me dtExcel.Rows.Count result…(作为测试)更改为:Count+=cmd.ExecuteNonQuery();在int k=cmd.ExecuteNonQuery()中,然后在k=0时进入调试并检查。通过这,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,efault.give me dtExcel.Rows.Count result…(作为测试)更改为:Count+=cmd.ExecuteNonQuery();在int k=cmd.ExecuteNonQuery()中,然后在k=0时进入调试并检查。通过这种方式,您可以获得有问题的行,然后发布,我试图实现您的建议,但将插入oly 16条记录。与excel中的记录数一样精确。但是它只有16个值。我的答案是关于你使用DB的方法。请检查,我更新了我的答案,以便您可以看到在执行INSERT期间sql中发


efault.give me dtExcel.Rows.Count result…(作为测试)更改为:Count+=cmd.ExecuteNonQuery();在int k=cmd.ExecuteNonQuery()中,然后在k=0时进入调试并检查。通过这种方式,您可以获得有问题的行,然后发布,我试图实现您的建议,但将插入oly 16条记录。与excel中的记录数一样精确。但是它只有16个值。我的答案是关于你使用DB的方法。请检查,我更新了我的答案,以便您可以看到在执行INSERT期间sql中发生的所有异常。通过分析这些错误,您可以理解为什么只插入了几行。我还想知道,如果事务回滚,ExecuteOnQuery会返回-1。因此,您计算的不是所有插入行的数量,而是插入行的数量—回滚事务
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;
using System.Data.Common;
using System.Data.SqlClient;



public partial class UploadExcel : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
///***when the button press, this code will execute***
    protected void Upload_Click(object sender, EventArgs e)
    {

        int count = 0;          
        try
        {
            string path = string.Concat(Server.MapPath("~/TempFiles/"), UploadExcel1.FileName);
            //Save File as Temp then you can delete it if you want
            UploadExcel1.SaveAs(path);
            DataTable dtExcel = new DataTable();
            string SourceConstr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0",path);
            OleDbConnection con1 = new OleDbConnection(SourceConstr);
            string query = "Select * from [Sheet1$]";
            OleDbDataAdapter dataadapt = new OleDbDataAdapter(query,con1);
            dataadapt.Fill(dtExcel);
            ///connection string with in the database below
            string sqlconn = System.Configuration.ConfigurationManager.ConnectionStrings["zena"].ToString();
            //all the excel file is stored in the data table here
            for (int i = 0; i < dtExcel.Rows.Count;  i++)
            {
               try
               {
                  SqlConnection sconn = new SqlConnection(sqlconn);
                  sconn.Open();
                  string insert_query12 = "insert into FCROperation (CallingNumber,OperatorId,OperatorName,CallReason) values("+dtExcel.Rows[i][0]+","+dtExcel.Rows[i][1]+",'"+dtExcel.Rows[i][2]+"','"+dtExcel.Rows[i][3]+"')";

                  SqlCommand cmd = new SqlCommand(insert_query12,sconn);
                  count+=cmd.ExecuteNonQuery();            
                }
                catch (Exception ex)
                {
                   //continue;             
                }
                //Label1.Text = ex.Message;
             }
            if (count == dtExcel.Rows.Count)
            {
               Label1.Text = "Success" + dtExcel.Rows.Count + count;
            }
            else
            {
                Label1.Text = "Failed" + dtExcel.Rows.Count + count;
                //Label1 = dtExcel.Rows.Count;
            }
        }
        catch (Exception ex)
        {
           Label1.Text = ex.Message;
           //throw ex;        
        }
        finally
        {              
        }
    }
}
Dictonary<int, Exception> errors = new Dictonary<int, Exception>();
for (int i = 0; i < dtExcel.Rows.Count; i++)
   {
      try
      {
          SqlConnection sconn = new SqlConnection(sqlconn);
          sconn.Open();
          string insert_query12 = "insert into FCROperation (CallingNumber,OperatorId,OperatorName,CallReason) values("+dtExcel.Rows[i][0]+","+dtExcel.Rows[i][1]+",'"+dtExcel.Rows[i][2]+"','"+dtExcel.Rows[i][3]+"')";

          SqlCommand cmd = new SqlCommand(insert_query12,sconn);
          count+=cmd.ExecuteNonQuery();

      }
      catch (Exception ex)
      {
            errors.Add(i, ex);
            //continue;

      }
      //Label1.Text = ex.Message;
   }
using (SqlConnection sconn = new SqlConnection(sqlconn))
{
  sconn.Open();
  for (int i = 0; i < dtExcel.Rows.Count;  i++)
            {
               try
               {                                 
                  string insert_query12 = "insert into FCROperation (CallingNumber,OperatorId,OperatorName,CallReason) values("+dtExcel.Rows[i][0]+","+dtExcel.Rows[i][1]+",'"+dtExcel.Rows[i][2]+"','"+dtExcel.Rows[i][3]+"')";
                  SqlCommand cmd = new SqlCommand(insert_query12,sconn);
                  count+=cmd.ExecuteNonQuery();            
                }
             catch (SqlException ex)
            {
                for (int i = 0; i < ex.Errors.Count; i++)
               {
                errorMessages.Append("Index #" + i + "\n" +
                    "Message: " + ex.Errors[i].Message + "\n" +
                    "LineNumber: " + ex.Errors[i].LineNumber + "\n" +
                    "Source: " + ex.Errors[i].Source + "\n" +
                    "Procedure: " + ex.Errors[i].Procedure + "\n");
               }
               Console.WriteLine(errorMessages.ToString());
            }
                catch (Exception ex)
                {
                   //continue;             
                }
                //Label1.Text = ex.Message;
             }
}