如何将Excel工作表上载到Light Switch Web客户端中的SQL表?

时间:2014-03-03 17:05:57

标签: sql vb.net excel visual-studio-lightswitch lightswitch-2013

我使用vb.net在visual studio 2013中有一个lightswitch项目。我希望用户能够单击一个按钮,让lightswitch找到一个excel文件,并根据预先确定的列映射将该文件上传到sql表。

我的偏好是使用Visual Studio的Office集成扩展,我通过以下链接下载了VS 2013:http://www.ge.tt/71iuRQv/v/0 但是,办公室集成的文档和示例似乎非常沉重地将excel电子表格放入lightswitch Web客户端的显示中,而不是放入sql数据表中,这是我需要的地方。以下是我一直关注的例子: http://blogs.msdn.com/b/bethmassi/archive/2012/07/18/new-and-improved-office-integration-pack-extension-for-lightswitch.aspx

或者,我有一个现有的存储过程,我可以通过从客户端向服务器发送Web API扩展来请求服务器调用此存储过程。根据Beth Masi和Paul van Bladel的例子,我已经将其用于其他存储过程。 (Stackoverflow不允许我发布链接...)

这种方法的不良部分是存储过程老了,而且很乱。

我已经搜索过,但还没有找到任何人使用lightswitch解决VS 2013的这个问题。有用的建议吗?

2 个答案:

答案 0 :(得分:0)

我使用了Matt Sampson详细说明的方法来存储word文件,效果非常好。因为它只存储原始二进制文件,所以它也应该处理Excel文件。

如果您要在LightSwitch中创建表格,请使用Binary类型。如果使用SQL创建脚本,请使用varbinary(MAX)

您需要创建自定义Silverlight对话框才能访问OpenFileDialog对象。然后以FileStream

打开文件

最后,您需要为控件的封闭方法添加处理程序,然后向用户显示控件。最有可能在按钮中完成。这需要在主调度员上完成。

代码示例在C#中,但我只是在Web上使用了许多可用的转换器之一并复制/粘贴了VB.NET代码。

答案 1 :(得分:0)

另一种选择可能是考虑炮轰DTSEXEC运行时执行SSIS包以执行上传 - 特别是如果目标Excel电子表格具有预定义的布局和内容数据类型。

更简单的是,您可以使用SQL Server BULK INSERT命令来完成工作 - 尽管这需要SQL Client连接到您的数据库。

HTH