如何通过从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并获取数据,然后生成插入脚本