其实无非就是
1.数据类型是否正确
2.数据长度是否超过了数据库里定义的最大长度
文本类型insert的时候要加单引号,数字类型不加,时间类型各数据库不同,oracle需要用函数转换

解决方案 »

  1.   

    还有,你应该在数据库客户端里先测试,能执行了再把sql语句放代码里
    如果出错,断点跟,把拼接的sql语句复制出来放数据库里执行,看到底怎么了
      

  2.   

    就是下载了excel模版自己往里面填的数据,然后再上传模版把数据更新到数据库的表中
      

  3.   

    读取Excel数据到SQL Server数据库
    private void timer1_Tick(object sender, EventArgs e)
            {
                string P_str_Name = "";//存储遍历到的Excel文件名
                List<string> P_list_SheetNames = new List<string>();//实例化泛型集合对象,用来存储工作表名称
                P_str_Name = txt_Path.Text;//记录遍历到的Excel文件名
                P_list_SheetNames = GetSheetName(P_str_Name);//获取Excel文件中的所有工作表名
                for (int j = 0; j < P_list_SheetNames.Count; j++)//遍历所有工作表
                {
                    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
                }
                System.Threading.Thread.Sleep(60000);//使线程休眠1分钟
            }
      

  4.   

    部分数据里面带了一些特殊符号,你dbug一下,就能看到那些乱码数据