解决方案 »

  1.   

    其实只有两种方法,一个是sql insert正常插入,所有各种控件的更新全部间接调用的它
    还有就是bulkcopy,这种模式忽略约束、触发器、事务完整性检查等等,所以快
      

  2.   

    将Excel文件中的数据导入到SQL Server数据表中
    //选择Excel文件
     private void btn_Select_Click(object sender, EventArgs e)
            {
                openFileDialog1.Filter = "Excel文件|*.xls";//设置打开文件筛选器
                openFileDialog1.Title = "选择Excel文件";//设置打开对话框标题
                openFileDialog1.Multiselect = false;//设置打开对话框中可以多选
                if (openFileDialog1.ShowDialog() == DialogResult.OK)//判断是否选择了文件
                {
                    txt_Path.Text = openFileDialog1.FileName;//在文本框中显示Excel文件名
                }
            }
    //将Excel文件数据写入到数据库
    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分钟
            }
      

  3.   

    其实分两步:
    1.先把excel读到内存里,这个所谓内存里,其实就是放到datatable里
    2.把内存数据写入数据库读excel又分为几种方式,OLEDB,ADODB,NPOI......
    写入数据库又分为几种方式,ODBC,ADODB,SQLComand......
      

  4.   

    writetoserver
    应该是方法里封装了Conn,在里面打开又关闭了