如何通过从excel表读取数据生成sql脚本?

目前我正在处理c#.net,我需要通过使用Excel表中存在的数据生成脚本(SQL插入脚本)。

更具体,

如果Excel表有三列

**column name** ColumName1, ColumName2, ColumName3 **data like** Value1, Value2, Value3 

我需要编写代码来生成插入脚本,如 –

INSERT [dbo]。[TableName]([ColumName1],[ColumName2],[ColumName3])VALUES('Value1','Value2','Value3')

有任何想法吗 ?

你需要为最后一列写一个forumla:

 ="insert into tblyourtablename (intmine, strval) values ("&B4&", N'"&C4&"'); set @intpane = scope_identity(); INSERT INTO tblpane (nameid_fk,strtext,bitmine,vbarmine) VALUES (@intpane ,N'"&D8&"' ,0 ,convert(varbinary,''));" 

这应该让你开始

编辑

为什么某些SQLstring有一个“N”前缀? 您可能已经看到使用N前缀传递string的Transact-SQL代码。 这表示后面的string是Unicode(N实际上代表国家语言字符集)。 这意味着您传递的是NCHAR,NVARCHAR或NTEXT值,而不是CHAR,VARCHAR或TEXT。 有关这些数据types的比较,请参阅文章#2354。

如需进一步阅读,请查看以下链接

http://databases.aspfaq.com/general/why-do-some-sql-strings-have-an-n-prefix.html

 var myConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\Language_Batch1_OneClick.xls';Extended Properties=Excel 8.0;"); ; var myCommand = new OleDbCommand(); var upCommand = new OleDbCommand(); int i = 0; try { string sql = null; string Value1 =null; string Value2=null; string Value3=null; myConnection.Open(); myCommand.Connection = myConnection; sql = "select ColumName1,ColumName1from,ColumName3 [sheet-name]"; myCommand.CommandText = sql; var dataReader = myCommand.ExecuteReader(); { value1=dataReader["ColumName1"].ToString(); value2=dataReader["ColumName2"].ToString(); value3=dataReader["ColumName3"].ToString(); string newQuery="INSERT [dbo].[TableName] ([ColumName1], [ColumName2], [ColumName3]) VALUES ('"+Value1+"', '"+Value2+"', '"+Value3+"')" } } 

读取excel并获取数据,然后生成插入脚本