目前我正在使用c#.net,我需要使用Excel工作表中的数据生成脚本(sql insert脚本)。
更具体一点,
如果Excel工作表有三列
**column name** ColumName1, ColumName2, ColumName3
**data like** Value1, Value2, Value3
我需要编写代码来生成插入脚本,如 -
INSERT [dbo]。[TableName]([ColumName1],[ColumName2],[ColumName3]) VALUES('Value1','Value2','Value3')
有什么想法吗?
答案 0 :(得分:1)
您需要为最终专栏编写一个论坛,例如:
="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,''));"
这应该是你的开始
修改强>
为什么有些SQL字符串有'N'前缀? 您可能已经看到使用N前缀传递字符串的Transact-SQL代码。这表示后续字符串是Unicode(N实际上代表国家语言字符集)。这意味着您传递的是NCHAR,NVARCHAR或NTEXT值,而不是CHAR,VARCHAR或TEXT。有关这些数据类型的比较,请参阅文章#2354。
如需进一步阅读,请查看以下链接
http://databases.aspfaq.com/general/why-do-some-sql-strings-have-an-n-prefix.html
答案 1 :(得分:0)
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+"')"
}
}
答案 2 :(得分:0)
阅读excel并获取数据,然后生成插入脚本