问题描述
EXCEL文件有一定的格式,如何导入SQLSERVER,太久没写C/S的东西了。都不记得了。
解决方案
解决方案二:
貌似在SqlServer2005里面有个Import功能可以做。自己导入也很简单,使用OLEDB打开Excel像操作数据库一样操作,然后将数据插入DB中。读取方法请参考:http://davidhayden.com/blog/dave/archive/2006/05/26/2973.aspx
解决方案三:
OK.thankyou
解决方案四:
解决方案五:
SqlServer2005的话可以直接导入,数据库--任务--导入数据
解决方案六:
通过OLEDB操作ExcelOleDbConnectionconn=null;try{//fileName表示要操纵的Excel的文件路径,如果excel不存在,现创建它,可以通过模版文件复制创建。stringstrConn;strConn="Provider=Microsoft.Jet.OLEDB.4.0;"+"DataSource="+fileName+";"+"ExtendedProperties='Excel8.0;HDR=no;IMEX=0'";conn=newOleDbConnection(strConn);conn.Open();System.Data.OleDb.OleDbCommandcmd=newSystem.Data.OleDb.OleDbCommand();cmd.Connection=conn;//在Excel的Sheet1的A3到H3处插入数据cmd.CommandText="insertinto[Sheet1$A3:H3](F1,F2,F3,F4,F5,F6,F7,F8)values('"+a200.Date+"','"+a200.PreviousClosePrice+"','"+a200.OpenPrice+"','"+a200.High+"','"+a200.Low+"','"+a200.Close+"','"+a200.Change+"','"+a200.ChangeRate+"')";cmd.ExecuteNonQuery();conn.Close();}catch(Exceptione){if(conn!=null)conn.Close();Console.WriteLine(e.ToString());}注:1)使用Excel工作簿时,默认情况下,区域中的第一行是标题行(或字段名称)。如果第一个区域不包含标题,您可以在连接字符串的扩展属性中指定HDR=NO。如果您在连接字符串中指定HDR=NO,JetOLEDB提供程序将自动为您命名字段(F1表示第一个字段,F2表示第二个字段,依此类推);2)IMEX=1将所有读入数据看作字符,其他值(0、2)请查阅相关帮助文档;3)如果出现“找不到可安装的isam”错误,一般是连接字符串错误。3、从excel文件读取数据stringsql="select*from[sheet1$]";DoOleSql(sql,"test.xls");4、更新excel文件中的数据stringsql="update[sheet1$]setFieldName1='333'whereFieldName2='b3'";DoOleSql(sql,"test.xls");5、向excel文件插入数据stringsql="insertinto[sheet1$](FieldName1,FieldName2,…)values('a',’b’,…)";DoOleSql(sql,"test.xls");6、删除excel文件中的数据:不提倡使用这种方法7、对于非标准结构的excel表格,可以指定excel中sheet的范围1)读取数据:stringsql="select*from[sheet1$A3:F20]";2)更新数据:stringsql="update[sheet1$A9:F15]setFieldName='333'whereAnotherFieldName='b3'";3)插入数据:stringsql="insertinto[sheet1$A9:F15](FieldName1,FieldName2,…)values('a',’b’,…)";4)删除数据:不提倡
解决方案七:
PrivateSubStandardPartsFrm_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadDimMyCnnAsNewOleDb.OleDbConnectionDimMyCmmAsNewOleDb.OleDbCommandDimMyAdpAsNewOleDb.OleDbDataAdapterDimMyDtsAsNewData.DataSetMyCnn.ConnectionString="Provider=Microsoft.jet.oledb.4.0;datasource=原辅料新物料编码(修正稿).xls;ExtendedProperties='Excel8.0;HDR=Yes;IMEX=1;'"MyCnn.Open()MyCmm.Connection=MyCnnMyCmm.CommandText="select*from[201紧固件库$]"MyAdp.SelectCommand=MyCmmMyAdp.Fill(MyDts,"biao")MyDts.AcceptChanges()partsConn=NewSqlConnection("DataSource=(local);InitialCatalog=StandardParts;IntegratedSecurity=true;UserID=sa")TrypartsConn.Open()DimiAsIntegerFori=0ToMyDts.Tables("biao").Rows.Count-1partsAdapter=NewSqlDataAdapterpartsAdapter.InsertCommand=NewSqlCommandpartsAdapter.InsertCommand.Connection=partsConnpartsAdapter.InsertCommand.CommandText="Insertintotb_201紧固件库(新规则编码,现存货编码,存货名称,存货规格,备注)"&"Values('"&MyDts.Tables("biao").Rows(i)(1)&"','"&MyDts.Tables("biao").Rows(i)(0)&_"','"&MyDts.Tables("biao").Rows(i)(2).ToString&"','"&MyDts.Tables("biao").Rows(i)(3).ToString&"','"&MyDts.Tables("biao").Rows(i)(4).ToString&"')"partsAdapter.InsertCommand.ExecuteNonQuery()NextCatchsqlexceptionparameterAsSystem.Data.SqlClient.SqlExceptionMessageBox.Show(sqlexceptionparameter.ToString)EndTrypartsConn.Close()EndSub以上是我做过的代码,验证正确,望对楼主有帮助