xml,excel导入数据库

  /**//// <summary>
  
/// 导出考生信息到XML文件
  
/// </summary>
  
/// <param name="toPath"></param>
  private void ExportToXml(string toPath)
  
{
   
this.ds.WriteXml(toPath,XmlWriteMode.WriteSchema);
  }


  
/**//// <summary>
  
/// 
导入考生信息
  
/// </summary>
  
/// <param name="fromPath">导入的XML文件</param>
  private void ImportFromXml(string fromPath)
  
{
   
using(FileStream fsReadXml=new FileStream(fromPath,FileMode.Open))
   
{
    XmlTextReader myXmlReader=
new XmlTextReader(fsReadXml);
    ds_xml.ReadXml(myXmlReader);
    myXmlReader.Close();
    
int pbValue=1;
    
int count=ds_xml.Tables[0].Rows.Count;
    
//
写入数据库
    foreach(DataRow dr in ds_xml.Tables[0].Rows)
    
{
     
try
     
{
      
this.pbProgress.Value=0;
      
this.panProgress.Visible=true;
      
this.lblMsg.Text="正在导入 "+dr["xjh"].ToString().Trim();
      DB db=
new DB();
      SqlParameter[] paras=
{
              
new SqlParameter("@xjh",dr["xjh"].ToString().Trim()),
              
new SqlParameter("@xxdm",dr["xxdm"].ToString().Trim()),
              
new SqlParameter("@xm",dr["xm"].ToString().Trim()),
              
new SqlParameter("@xb",dr["xb"].ToString().Trim()),
              
new SqlParameter("@bh",dr["bh"].ToString().Trim()),
              
new SqlParameter("@zp",dr["zp"]),
             };
      
      
if(ds.Tables["xs_ksxx"].Select("xjh='"+dr["xjh"]+"'").Length==0)
      
{
       
string strInsertJBXX="insert into xs_jbxx(xjh,xxdm,xm,xb,bh,zp) values(@xjh,@xxdm,@xm,@xb,@bh,@zp)";
          db.ExecCommand(strInsertJBXX,paras); 
      }
      
else if(ds.Tables["xs_ksxx"].Select("xjh='"+dr["xjh"]+"'").Length==1)
      
{
       
string strUpdateJBXX="update xs_jbxx set xxdm=@xxdm,xm=@xm,xb=@xb,bh=@bh,zp=@zp where xjh=@xjh";
       db.ExecCommand(strUpdateJBXX,paras);
      }
      System.Threading.Thread.Sleep(10);
      
this.pbProgress.Value=100;
      
this.pbProgressAll.Value=(int)((pbValue/count)*100);
      Application.DoEvents();
      pbValue++;
      ds.Clear();
      DataBind(rowfilter);
     }
     
catch(Exception ex)
     
{
      
this.panProgress.Visible=false;
      MessageBox.Show(ex.ToString());
     }
    }
    
this.panProgress.Visible=false;
   }
  }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Excel导入SQLSERVER数据库,请问怎样杜绝导入表头那一行

net_lover(【孟子E章】) ( ) 信誉:140

string strCon ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + @FileSource + ";Extended Properties=/"Excel 8.0;HDR=Yes;IMEX=1/"";

public void LoadData(string FileSource,string StyleSheet)

{

  string strCon ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" +   @FileSource + ";Extended Properties=Excel 8.0";

  OleDbConnection myConn = new OleDbConnection(strCon);

   myConn.Open(); //打开数据链接,得到一个数据集

   DataSet myDataSet = new DataSet(); //得到自己的DataSet对象

   string StrSql="select *  from ["+StyleSheet+"$]";

 OleDbDataAdapter myCommand = new OleDbDataAdapter (StrSql,myConn);       

   myCommand.Fill(myDataSet,"["+StyleSheet+"$]");

   myCommand.Dispose();

   DataTable DT=myDataSet.Tables["["+StyleSheet+"$]"];

   myConn.Close();

   myCommand.Dispose();

 

   conn.Close();

   conn.Open();

   string sql="delete   from TEST";

   SqlCommand comm=new SqlCommand(sql,conn);

   comm.ExecuteNonQuery();

   comm.Dispose();

 

    for(int j=0;j<DT.Rows.Count;j++)

       {

string ID=DT.Rows[j][0].ToString();string AUTHOR=DT.Rows[j][1].ToString();string NAME=DT.Rows[j][2].ToString();

string PRICE=DT.Rows[j][3].ToString();string strSql="insert into TEST(ID,AUTHOR,NAME,PRICE) ";

strSql=strSql + "values               ('"+ID+"','"+AUTHOR+"','"+NAME+"','"+PRICE+"')";

comm=new SqlCommand(strSql,conn);

comm.ExecuteNonQuery();

if (j==DT.Rows.Count-1)

   {

     Label1.Visible=true;

    }

         }

conn.Close();

  }

}

   实际例子与说明如下:

/**//*如果要将表整个导出至Excel的话*/
EXEC master..xp_cmdshell 'bcp northwind.dbo.orders out c:/Book1.xls -c -q -S"(local)" -U"sa" -P""'


--
注意句中的northwind.dbo.orders,为数据库名+拥有者+表名

--直接导出用“out”关健字

-------------------------------------------
/**//*
如果要利用查询来导出部分字段至Excel的话*/
EXEC master..xp_cmdshell 'bcp "SELECT orderid,cutomerid,freight FROM northwind..orders ORDER BY orderid" queryout C:/ Book2.xls -c -S"(local)" -U"sa" -P""'


--
这里在bcp后面加了一个查询语句,并用双引号括起来

--利用查询要用“queryout”关键字

 

 

    

/**//*1、插入Excel中的资料到现存的sql数据库表中(假设C盘有excelbook2.xlsbook2.xls中有个工作表sheet1sheet1中有两列idFName;而同时sql数据库中也有一个表test):*/
insert into test SELECT id,FName
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:/book2.xls";User ID=Admin;Password=;Extended properties=Excel 8.0') [sheet1$]
--如果用select * ,则列的次序会乱,资料内容也会乱,无法插入成功,所以指定列名
-----------------------
/**//*2、插入excel表中资料到sql数据库并新建一个sql表(excel的定义和内容同上):*/
select convert(int,id)as id,FName into test7
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:/book2.xls";User ID=Admin;Password=;Extended properties=Excel 8.0') [sheet1$]
--select 列中最好用convert进行显示类型转换,否则资料类型会不如预期。

 

 

excel导入数据到数据库

建立Connection对象的数据源连接字符串:  
  "Provider=Microsoft.Jet.Oledb.4.0;Data   Source=Excel  
文件物理路径   +   ";Extended   Properties=Excel   8.0";    
   
  DataAdapter
对象中的SQL语句应为:"Select   字段列表   From   [工作表名$]"  
   
 
具体示例:  
   
   
  <%@   Import   NameSpace="System.Data"%>  
  <%@   Import   NameSpace="System.Data.OleDb"%>  
   
  <script   Language="C#"   runat="server">  
  void   Page_Load(Object   sender,EventArgs   e)  
  {  
  string   strConn   =   "Provider=Microsoft.Jet.Oledb.4.0;Data   Source="   +   Server.MapPath("Book1.xls")   +   ";Extended   Properties=Excel   8.0";    
  OleDbConnection   conn   =   new   OleDbConnection(strConn);  
  OleDbDataAdapter   adp   =   new   OleDbDataAdapter("Select   *   from   [Sheet1$]",conn);  
  DataSet   ds   =   new   DataSet();  
  adp.Fill(ds,"Book1");  
  ExlDataGrid.DataSource   =   ds.Tables["Book1"].DefaultView;  
  ExlDataGrid.DataBind();  
  }  
  </script>  
   
  <html>  
  <body>  
  <h4   align="center">
读取Excel文件</h4>  
  <asp:DataGrid   id="ExlDataGrid"   width="100%"   HeaderStyle-BackColor="#999999"   ForeColor="#333333"   runat="server"></asp:DataGrid>  
  </body>  
  </html>  


给你一个我昨天改别人的一个导excelsql数据库的我正用的程序,button1按钮一点就开始导入,我导的是excel是第二三colum..如下:  
   
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
   
   
  string   mystring="Provider   =   Microsoft.Jet.OLEDB.4.0   ;   Data   Source   =   'D:/ExportToExcel/excel/test.xls';Extended   Properties=Excel   8.0";  
  OleDbConnection   cnnxls   =   new   OleDbConnection   (mystring);  
  OleDbDataAdapter   myDa   =new   OleDbDataAdapter("select   *   from   [Sheet1$]",cnnxls);  
  DataSet   myDs   =new   DataSet();  
  myDa.Fill(myDs);  
   
  if(myDs.Tables[0].Rows.Count   >   0)  
  {  
  string   strSql   =   "";  
  string   CnnString="Provider=SQLOLEDB;database=testnews;server=(local);uid=sa;pwd=";  
  OleDbConnection   conn   =new   OleDbConnection(CnnString);  
  conn.Open   ();  
  OleDbCommand   myCmd   =null;  
   
  for(int   i=0;   i<myDs.Tables[0].Rows.Count;   i++)  
  {  
  strSql="insert   into   news(title,body)   values   ('";  
  strSql   +=   myDs.Tables[0].Rows[i].ItemArray[1].ToString()   +   "',   '";  
  strSql   +=   myDs.Tables[0].Rows[i].ItemArray[2].ToString()   +   "')";  
   
  try  
  {  
  myCmd=new   OleDbCommand(strSql,conn);  
  myCmd.ExecuteNonQuery();  
  Label8.Text   =   "<script   language=javascript>alert('
数据导入成功.');</script>";  
  }  
  catch  
  {  
  Label8.Text   =   "<script   language=javascript>alert('
数据导入失败.');</script>";  
  }  
  }  
  conn.Close();  
  }  
   
  }  
  }  

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值