Вызов хранимой процедуры от Lightswitch

1

Я использую Lightswitch 2013 (С#) над SQL Server, чтобы каждый месяц вводить базовые данные. После того, как пользователь вводит данные на ряд экранов, я хочу, чтобы они могли выполнять хранимую процедуру в базе данных, которая начнет серию задач по созданию куба SSAS. например. usp_DoTasks

Таким образом, кнопка называется "Данные процесса" и находится на экране EBIT.

Изображение 174551

Я не могу найти ничего, что можно было бы назвать простым хранимым процессом, который не связан с табличной вставкой и т.д. Я новичок в lightwitch, это первое приложение, которое я создал до сих пор.

using System;
using System.Linq;
using System.IO;
using System.IO.IsolatedStorage;
using System.Collections.Generic;
using System.Configuration;
using Microsoft.LightSwitch;
using Microsoft.LightSwitch.Framework.Client;
using Microsoft.LightSwitch.Presentation;
using Microsoft.LightSwitch.Presentation.Extensions;

namespace LightSwitchApplication
{
    public partial class EditableEBiTByYearCountryGrid
    {
        partial void EditableEBiTByYearCountryGrid_Created()
        {
            //Set the defaults for the parameters
            SelectedYear =    this.DataWorkspace.MyData.Years_SingleOrDefault(DateTime.Today.Year);
            SelectedCountry = this.DataWorkspace.MyData.SalesCountries_SingleOrDefault(3);
        }

        partial void ProcessData_Execute()
        {
        //help???
        }

    }
}

Благодарю!

Теги:
sql-server
silverlight
lightswitch-2013

2 ответа

0
Лучший ответ

хорошо, я думаю, что я буду тупой, чтобы кто-то вроде меня мог сделать это в будущем...

Это для простого вызова хранимой процедуры, никаких параметров и не имеет отношения к экрану, который вы редактируете.

Примечание. У меня есть таблицы под названием Год и месяц, которые являются справочными таблицами, а не поддерживаются пользователем. Нет данных, которые вставляются в таблицу Year.

Здесь, что надеть кнопку "Выполнить" в коде на вашем "экране",

    partial void ProcessData_Execute()
    {
        // Write your code here.
        DataWorkspace dataWorkspace = new DataWorkspace();
        Year operation = dataWorkspace.MyData.Years.AddNew();
        dataWorkspace.MyData.SaveChanges();
    }

Чтобы сделать следующий бит, вам нужно добавить ссылку на System.Configuration. Он описан в приведенной выше ссылке как

Вам нужно будет добавить ссылку из проекта сервера в сборку System.Configuration, чтобы использовать класс ConfigurationManager. (В панели инструментов Solution Explorer опустите переключатель View и выберите "File View". Затем щелкните правой кнопкой мыши проект "Сервер" и скажите "Добавить ссылку". На вкладке.NET выберите "System.Configuration".)

Внутри источника данных "MyData" щелкните правой кнопкой мыши и "Просмотреть код",

partial void Years_Inserting(Year entity)
    {
        using (SqlConnection connection = new SqlConnection())
        {
            string connectionStringName = this.DataWorkspace.ProfitData.Details.Name;
            connection.ConnectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;

            string procedure = "usp_DoTask";
            using (SqlCommand command = new SqlCommand(procedure, connection))
            {
                command.CommandType = CommandType.StoredProcedure;
                connection.Open();
                command.ExecuteNonQuery();
            }

        }
        this.Details.DiscardChanges();
    }

И эй престо, это сработало.

  • 0
    это действительно не помогло мне. Сообщение в блоге было намного лучше в прохождении каждого из шагов и объяснения для каждого. Можете ли вы объяснить, как ссылаться на сборку System.Configuration в Lightswitch?
2

Вы видели этот пост в блоге? Он содержит пошаговые инструкции о том, как выполнять хранимые процедуры в LightSwitch.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню