1

SQL Server で Lightswitch 2013 (C#) を使用して、毎月基本的なデータ入力を行っています。ユーザーが一連の画面にデータを入力した後、SSAS キューブを構築するための一連のタスクを開始するストアド プロシージャをデータベースで実行できるようにしたいと考えています。例えば。usp_DoTasks

そのため、ボタンは「Process Data」と呼ばれ、EBIT 画面にあります。

ここに画像の説明を入力

テーブル挿入などにリンクされていない基本的なストアド プロシージャを呼び出すだけで何も見つからないようです。

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???
        }

    }
}

ありがとう!

4

2 に答える 2

2

このブログ記事を見たことがありますか?LightSwitch でストアド プロシージャを実行する方法について、順を追って説明します。

于 2014-05-27T15:21:34.310 に答える
0

わかりました、私のような誰かが将来これを行うことができるように、私はこれを馬鹿にすると思います...

これは単純なストアド プロシージャ コール用で、パラメータはなく、編集中の画面とはあまり関係がありません。

注:参照テーブルであり、ユーザーが管理していない年と月という名前のテーブルがあります。Year Table に挿入される実際のデータはありません。

「画面」のコード内でボタン実行に配置するものは次のとおりです

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

次のビットを実行するには、System.Configuration への参照を追加する必要があります。上記のリンクで次のように説明されています。

ConfigurationManager クラスを使用するには、Server プロジェクトから System.Configuration アセンブリへの参照を追加する必要があります。(ソリューション エクスプローラーのツールバーで、[表示] トグルをドロップダウンして [ファイル ビュー] を選択します。次に、サーバー プロジェクトを右クリックし、[参照の追加] をクリックします。[.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();
    }

そして、やあ、それはうまくいきました。

于 2014-06-02T01:55:17.973 に答える