1

我每个月都在 SQL Server 上使用 Lightswitch 2013 (C#) 来做一些基本的数据输入。用户在一系列屏幕上输入数据后,我希望他们能够在数据库上执行存储过程,这将启动一系列任务来构建 SSAS 多维数据集。例如。usp_DoTasks

因此该按钮称为“流程数据”,位于 EBIT 屏幕上。

在此处输入图像描述

我似乎找不到任何关于仅调用基本存储过程、未链接到表插入等的任何内容。我是 lightswitch 的新手,这是我迄今为止构建的第一个应用程序。

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 和 Month 的表,它们是参考表,而不是用户维护的。没有实际数据被插入到年表中。

这是在“屏幕”上的代码中放置在 Button Execute 上的内容

    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 回答