zoukankan      html  css  js  c++  java
  • Column 'Column Name' does not belong to table Table

     

    Server Error in '/WebSite1' Application.


    Column '工号' does not belong to table Table.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.ArgumentException: Column '工号' does not belong to table Table.

    Source Error:

    Line 65:         foreach (DataRow dataRow in objDs.Tables[0].Rows)
                Line 66:         {
                
    Line 67: objKqDatas.Insert(
    Line 68:                 objDictionary["PrimaryKey"].ToString(),
                Line 69:                 dataRow["工号"].ToString(),


    Source File: d:\Projects\ERP\System\HumanResources\KQ\Analysis.aspx.cs Line: 67

    Stack Trace:

    [ArgumentException: Column '工号' does not belong to table Table.]
                System.Data.DataRow.GetDataColumn(String columnName) +2079375
                System.Data.DataRow.get_Item(String columnName) +13
                System_HumanResources_KQ_Analysis.Data_Binding() in d:\Projects\ERP\System\HumanResources\KQ\Analysis.aspx.cs:67
                System_HumanResources_KQ_Analysis.Page_Load(Object sender, EventArgs e) in d:\Projects\ERP\System\HumanResources\KQ\Analysis.aspx.cs:34
                System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
                System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
                System.Web.UI.Control.OnLoad(EventArgs e) +91
                System.Web.UI.Control.LoadRecursive() +74
                System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
                

    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

    用户上传的文件不符合样版文件。列名不一致。需要想出一个方法,去判断Excel的表头字段。下面方法是检查出Excel结构,需要使用GetOleDbSchemaTable方法进行处理。

     //oleDBconnection http://www.cnblogs.com/insus/articles/2008946.html
            string ec = objKQ.GetExcelConnectionString("~/Temp/49be9717-ed46-4f1e-8302-4d23efe4db93.xlsx");
           
            OleDbConnection oc 
    = new OleDbConnection(ec);
            oc.Open();
            String[] restrections 
    = { nullnull"Sheet1$"null };
            DataTable oDt 
    = oc.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,restrections);
            oc.Close();

    结果:

    到此为止,只是找到Excel文件的Schema,接下来是需要处理得到的结果是否是您要求的字段了。

     String[] excelColumn = new String[oDt.Rows.Count];
            
    int i = 0;

            
    foreach (DataRow row in dt.Rows)
            {
                excelColumn[i] 
    = row["COLUMN_NAME"].ToString();
                i
    ++;
            }

            
    for (int j = 0; j < excelColumn.Length; j++)
            {
                
    //这里比自己的字段。
            }
  • 相关阅读:
    【转】IBatis.Net项目数据库SqlServer迁移至Oracle
    【转】远程桌面 剪切板复制文件失效解决方法
    为什么越学反而越蠢?碎片化学习是个骗局
    Spring MVC起步
    [1-1] 把时间当做朋友(李笑来)Chapter 1 【心智的力量】 摘录
    Java反射总结
    No enclosing instance of type Demo is accessible. Must qualify the allocation with an enclosing instance of type Demo (e.g. x.new A() where x is an instance of Demo).
    hiberbnate 缓存策略概述
    一分钟看你缺乏哪种维生素
    zrrx笔试题(一)——文件复制&日期天数差
  • 原文地址:https://www.cnblogs.com/insus/p/2013559.html
Copyright © 2011-2022 走看看