2012-06-25 2 views
0

Я создал хранимую процедуру для преобразования файла Excel в SQL Server 2008 R2. Он отлично работает, когда я тестирую его в Visual Studio 2008.SQL хранимая процедура в ASPX не выполняется

Однако, когда я использую хранимую процедуру на странице ASPX с помощью элемента управления SqlDataSource, хранимая процедура не выполняется и преобразование не происходит, хотя нет сообщения об ошибке отображается. Вот код ASPX:

<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" 
     AutoEventWireup="false" CodeFile="Processing.aspx.vb" Inherits="_Default" %> 
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
     SelectCommand="MyStoredProcedure" 
     SelectCommandType="StoredProcedure"> 
    </asp:SqlDataSource> 
</asp:Content> 

Сервер SQL код хранимой процедуры:

ALTER PROCEDURE dbo.MyStoredProcedure 
AS 

SELECT * 
INTO [dbo].[MySQLtable] 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=C:\MyExceltable;', 
       'SELECT * FROM [Sheet1$]') 
RETURN 

Любая помощь будет высоко оценен.

+2

'C: MyExceltable' <- Этот синтаксис кажется немного хитроумный –

ответ

1

Поддерживается ли страница aspx с сервера? Если это так, файл (MyExceltable) должен быть на сервере, а не на машине пользователя.

+0

Да файл в сервер. – user1479393

+0

Я также заметил, что когда я запускаю страницу, я вообще не замечаю никакой паузы, а это значит, что преобразование не произошло, так как требуется немного времени для преобразования файла Excel в таблицу SQL. Кроме того, когда я проверяю свойства таблицы, время/дата не изменяются. Это я, почему я уверен, что преобразования не произошло. – user1479393

+0

Ваша хранимая процедура - это команда вставки. Вставляет записи из файла excel в таблицу. Он не вписывается в команду выбора. Вероятно, вам нужно изменить хранимую процедуру на SELECT * FROM OPENROWSET ... – viclim

1

У вас есть:

SelectCommand="MyStoredProcedure" 

Глядя на ваш SQL скрипт, это должно быть:

SelectCommand="StoredProcedureExcelToSQL" 
+0

Отредактировано SQL-скрипт. Благодарю. Но все равно не беспокоиться. :( – user1479393

Смежные вопросы