目测你用OLEDB读取的,OLEDB是把EXCEL当数据库表来读取,第一行是列名

解决方案 »

  1.   

    2楼正确,应该是将第一行当为Title了,我该怎么改呢?是该Exel的格式吗?怎么给你分?
      

  2.   

    加一行 header不就行了。是修改excel格式。左下角   结贴
      

  3.   

    在连接字符串中加个参数,HDR=No;IMEX=1
      

  4.   

    对的,已经OK了,谢谢,这是详细的参数介绍:
    参数HDR的值:
    HDR=Yes,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES
    参数Excel 8.0 对于Excel 97以上到2003版本都用Excel 8.0,2007或2010的都用Extended Properties=Excel 12.0
    IMEX ( IMport EXport mode )设置
      IMEX 有三种模式:
      0 is Export mode
      1 is Import mode
      2 is Linked mode (full update capabilities)
      我这里特别要说明的就是 IMEX 参数了,因为不同的模式代表著不同的读写行为:
      当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
      当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
      当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
    意义如下:
    0 ---输出模式;
    1---输入模式;
    2----链接模式(完全更新能力)
      

  5.   

    话说,已经有了NPOI,真的不应该再回头研究OLEDB了
      

  6.   

    .net从Excel读取数据到指定数据库
     private void timer1_Tick(object sender, EventArgs e)
            {
                if (DateTime.Now.Hour == nudown_Hour.Value && DateTime.Now.Minute == nudown_Min.Value)
                {
                    string P_str_Name = txt_Path.Text;//记录Excel文件名
                    List<string> P_list_SheetNames = new List<string>();//实例化泛型集合对象,用来存储工作表名称
                    P_list_SheetNames = GetSheetName(P_str_Name);//获取Excel文件中的所有工作表名
                    for (int j = 0; j < P_list_SheetNames.Count; j++)//遍历所有工作表
                    {
                        if (rbtn_Access.Checked)//判断Access数据库连接设置单选按钮选中
                        {
                            ImportDataToAccess(P_str_Name, P_list_SheetNames[j]);//将将工作表内容导出到Access
                        }
                        else if (rbtn_Sql.Checked)//判断Sql Server数据库连接设置单选按钮选中
                        {
                            if (ckbox_Windows.Checked)//如果用Windows身份验证登录Sql Server
                                ImportDataToSql(P_str_Name, P_list_SheetNames[j], "Data Source=" + txt_Server.Text + ";Initial Catalog =" + cbox_Server.Text + ";Integrated Security=SSPI;");//将工作表内容导出到Sql Server
                            else if (ckbox_SQL.Checked)//如果用Sql Server身份验证登录Sql Server
                                ImportDataToSql(P_str_Name, P_list_SheetNames[j], "Data Source=" + txt_Server.Text + ";Database=" + cbox_Server.Text + ";Uid=" + txt_Name.Text + ";Pwd=" + txt_Pwd.Text + ";");//将工作表内容导出到Sql Server
                        }
                    }
                    MessageBox.Show("程序在" + DateTime.Now.ToShortTimeString() + "分时自动将Excel工作表中数据导入到了指定的数据库中!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }