如何通过读取excel表格中的数据来生成sql脚本

本文关键字:sql 脚本 数据 读取 何通过 excel 表格 | 更新日期: 2023-09-27 17:51:24

目前我正在c# .net工作,我需要通过使用excel工作表中存在的数据生成脚本(sql插入脚本)。

更具体地说,

如果excel表有三列

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

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

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

有什么想法吗?

如何通过读取excel表格中的数据来生成sql脚本

您需要为最后一列编写一个公式,例如:

="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

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