【问题标题】:Insert data into server.....?将数据插入服务器......?
【发布时间】:2012-01-11 07:17:25
【问题描述】:

我正在尝试读取 Excel 表的某些指定列以及日期、手机号码和某些列,我能够读取这些列,但是将值插入数据库时​​出现问题...... .....

    public static DataTable columnNamessheet2(String excelFile)
    {
        string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFile + ";Extended Properties='Excel 12.0;'";
        string connectionstring = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DebitCare;Data Source=SSDEV7-HP\\SQLEXPRESS";

        using (OleDbConnection conn1 = new OleDbConnection(connString))
        {
            SqlConnection SqlConn1 = new SqlConnection(connectionstring);
            SqlConn1.Open();
            OleDbCommand odc1 = new OleDbCommand(string.Format("Select  LOAN_NO,DOB,DEALER_NAME,CUST_MOBILE_NO  FROM [ICICI TW DUMP$]"), conn1);
            conn1.Open();
            OleDbDataReader reader1 = odc1.ExecuteReader();
            int LOAN_NO = reader1.GetOrdinal("LOAN_NO");
            int DEALER_NAME = reader1.GetOrdinal("DEALER_NAME");
            int DOB = reader1.GetOrdinal("DOB");
            int CUST_MOBILE_NO = reader1.GetOrdinal("CUST_MOBILE_NO");
            while (reader1.Read())
            {
                string LnNumber = reader1.GetValue(LOAN_NO).ToString();
                string cname = reader1.GetValue(DEALER_NAME).ToString();
                string CDOB = reader1.GetValue(DOB).ToString();
                string CMobNo = reader1.GetValue(CUST_MOBILE_NO).ToString();
            }
            DataTable sheetSchema1 = reader1.GetSchemaTable();
            SqlBulkCopy sqlbulk = new SqlBulkCopy(SqlConn1);
            sqlbulk.DestinationTableName = "DebitCare";
            sqlbulk.ColumnMappings.Add("LnNumber", "CUSTOMER_LOAN_NO");
            sqlbulk.ColumnMappings.Add("cname", "CUSTOMER_NAME");
            sqlbulk.ColumnMappings.Add("CDOB", "DOB");
            sqlbulk.ColumnMappings.Add("CMobNo", "CUST_MOBILE_NO");
            sqlbulk.WriteToServer(reader1);
            return sheetSchema1;
        }

    }

【问题讨论】:

  • 我收到错误消息............“给定的 ColumnName 'LnNumber' 与数据源中的任何列都不匹配。”
  • 到底是什么问题?您收到什么错误消息?
  • 我收到错误消息............“给定的 ColumnName 'LnNumber' 与数据源中的任何列都不匹配。”
  • "CUSTOMER_LOAN_NO" 是数据库中的列名,其中 "LOAN_NO" 是 excel 文件中的列名我在读取这些列时遇到问题而没有转换这就是我采用 int 、string 并转换的原因\

标签: asp.net sql c#-4.0


【解决方案1】:

然后你的行

sqlbulk.ColumnMappings.Add("LnNumber", "CUSTOMER_LOAN_NO");

应该说

sqlbulk.ColumnMappings.Add( "LOAN_NO","CUSTOMER_LOAN_NO");

这里是该实用程序的文档:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopycolumnmapping.aspx

【讨论】:

  • "CUSTOMER_LOAN_NO" 是数据库中的列名,其中 "LOAN_NO" 是 excel 文件中的列名我在读取这些列时遇到问题而没有转换这就是我采用 int 、string 并转换的原因\ - 拉古班达鲁
  • 那么不应该是这样:sqlbulk.ColumnMappings.Add("CUSTOMER_LOAN_NO", "LOAN_NO");
  • 给定的 ColumnName 'CUSTOMER_LOAN_NO' 与数据源中的任何列都不匹配。
  • 我应该使用转换值仪式.....转换后的值在字符串中......
  • 很抱歉我把它们弄反了——它的来源、目的地。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 2013-06-10
  • 2017-12-05
相关资源
最近更新 更多