C# 如何通过从excel工作表读取数据来生成sql脚本?

C# 如何通过从excel工作表读取数据来生成sql脚本?,c#,asp.net,.net,excel,C#,Asp.net,.net,Excel,目前我正在使用c#.net,我需要使用excel工作表中的数据生成脚本(sql插入脚本) 更具体地说, 如果excel工作表中有三列 我需要编写代码来生成插入脚本,如- 插入[dbo]。[TableName]([ColumName1]、[ColumName2]、[ColumName3]) 值('Value1'、'Value2'、'Value3') 有什么想法吗?你需要为最后一个专栏写一个论坛,例如: var myConnection = new OleDbConnection("provider

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

更具体地说,

如果excel工作表中有三列

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

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


有什么想法吗?

你需要为最后一个专栏写一个论坛,例如:

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+"')"
    }

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

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


您需要为最后一列写一个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,''));"
这应该是你的开始

编辑

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

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



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

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

感谢您的回复。我需要知道N'的确切含义以及它在这里的操作是什么?请参阅我的编辑,以了解有N的解释,我不知道您的列数据类型,但N不是必需的。@Ebenezar_Gislen_软件如果对您的问题有帮助,请将答案标记为正确。非常感谢。谢谢你的编辑。它有相关的信息。我还发现这篇文章对我们的N‘讨论’提供了最好的理解如你所说,它代表Unicode数据,代表国家语言字符集。但这不是强制性的,取决于我们的要求。谢谢您的回复。我需要知道N'的确切含义以及它在这里的操作是什么?请参阅我的编辑,以了解有N的解释,我不知道您的列数据类型,但N不是必需的。@Ebenezar_Gislen_软件如果对您的问题有帮助,请将答案标记为正确。非常感谢。谢谢你的编辑。它有相关的信息。我还发现这篇文章对我们的N‘讨论’提供了最好的理解如你所说,它代表Unicode数据,代表国家语言字符集。但这不是强制性的,取决于我们的要求。感谢您的回答和解释。欢迎您并请标记它帮助您解决问题的答案。感谢您的回答和解释。欢迎您并请标记它帮助您解决问题的答案。是否要在excel工作表或其他地方创建脚本?@krshekhar我只需要生成脚本。我必须能够在我的数据库(sql server)中运行脚本。因此,它不是一个可以生成的问题。我只需要脚本。你可以自己做。谢谢。您想在excel工作表或其他地方创建脚本吗?@krshekhar我只需要生成脚本。我必须能够在我的数据库(sql server)中运行脚本。因此,它不是一个可以生成的问题。我只需要脚本。你可以自己做。谢谢