如何使用U2 Toolkit for .NET将U2 Business Logic Subroutine的多值数据转换为.NET对象,如DataSet / DataTable?

时间:2013-02-17 02:49:19

标签: subroutine u2 universe unidata u2netdk

我有以下子程序。它将INPUT作为参数1,并将多值数据OUTPUT作为参数2发送。

SUBROUTINE MV_TO_DATASET_SELECT_SUBROUTINE(ARG_INPUT,ARG_OUTPUT)

x = ARG_INPUT ARG_OUTPUT =“100”:@ VM:“101”:@ VM:“102”:@ VM:“103”:@ FM:“Nancy”:@ VM:“Andrew”:@ VM:“Janet”:@ VM : “霭”:@ FM: “1991年1月6日”:@ VM: “1996年6月7日”:@ VM: “1999年11月8日”:@ VM: “12/10/2001”

RETURN

上述子程序的多值数据的模式如下。

        DataSet ds = new DataSet();
        DataTable dt = new DataTable("Employee");
        ds.Tables.Add(dt);
        dt.Columns.Add("ID",typeof(Int32));
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("HireDate", typeof(DateTime));

1 个答案:

答案 0 :(得分:3)

您可以通过以下方式之一来完成此任务:

  • 使用MV_To_DataTable()和DataTable_To_MV()。您可以创建模式 通过将Empty DataTable拖放到Empty中来实现子例程 DataSet Deginer。
  • 通过扩大和删除Visual Studio Server Explorer的U2 子程序到DataSet Designer中。 U2 Subrotine返回 结果集/数据集通过执行API,例如ST = SQLExecDirect(@HSTMT, “选择F1作为COL1,F2作为COL2,F3作为COL3来自@TMP SLIST 9 ORDER BY 1" )

使用MV_To_DataTable()和DataTable_To_MV()

创建ASP.NET Web应用程序项目。在“项目名称”中键入“WebApplication_Subroutine”。 create ap.net app

添加对U2NETDK程序集的引用(U2.Data.Client) Add Reference

将标题'欢迎使用ASP.NET!'更改为'欢迎使用U2 Toolkit for .NET演示业务逻辑子程序的多值字符串数据到.NET DataSet!' change title

打开'Default.aspx'文件并转到设计模式。 open web page in design mode

执行以下操作:

  • 拖放按钮控件。将其命名为“加载”
  • 拖放按钮控件。将其命名为“更新”
  • 拖放GridView控件。

    drag and drop buttons

右键单击解决方案资源管理器。选择Add - > New Item-DataSet。在“名称”框中,键入“Employee.xsd”

new item - dataset

将DataTable拖放到Designer中。将名称更改为“员工”表。 drag DataTable

创建3个新列(U2子例程架构):

  • ID - 数据类型:INT
  • 名称 - 数据类型:STRING
  • HireDate - 数据类型:日期 create 3 cols datatype cols

在设计模式下打开'Default.aspx'文件。双击“加载按钮”。它将创建事件处理程序代码。 load evernt handler

剪切并粘贴以下代码。

protected void Button1_Click(object sender, EventArgs e)
        {
            U2ConnectionStringBuilder l = new U2ConnectionStringBuilder();
            l.Server = "127.0.0.1";
            l.UserID = "user";
            l.Password = "pass";
            l.Database = "HS.SALES";
            l.ServerType = "universe";
            string lconnstr = l.ToString();
            U2Connection c = new U2Connection();
            c.ConnectionString = lconnstr;
            c.Open();
            U2Command command = c.CreateCommand();
            command.CommandText = "CALL MV_TO_DATASET_SELECT_SUBROUTINE(?,?)";
            command.CommandType = CommandType.StoredProcedure;
            U2Parameter p1 = new U2Parameter();
            p1.Direction = ParameterDirection.InputOutput;
            p1.Value = "";
            p1.ParameterName = "@arg_input";
            command.Parameters.Add(p1);
            U2Parameter p2 = new U2Parameter();
            p2.Direction = ParameterDirection.InputOutput;
            p2.Value = "";
            p2.ParameterName = "@arg_output";
            command.Parameters.Add(p2);
            command.ExecuteNonQuery();

            Employee.EmployeeDataTable dt = new Employee.EmployeeDataTable();

            command.Parameters[1].MV_To_DataTable(dt);

            Session["GridDataset"] = dt;


            this.GridView1.DataSource = dt;
            this.GridView1.DataBind();
        }

load code

运行该应用程序。按“加载”按钮。

run asp.net app

在设计模式下打开'Default.aspx'文件。双击“更新按钮”。它将在Code后面的页面中创建Event Handler。 剪切并粘贴以下代码。

        protected void Button2_Click(object sender, EventArgs e)
    {
        DataTable dt = (DataTable)Session["GridDataset"];

        //To TEST, change first row
        string s1 = (string)dt.Rows[0]["Name"];
        dt.Rows[0]["Name"] = s1 + "NewValue";


        // get the modified rows
        DataTable dt_changed = dt.GetChanges();

        //call DATASET_TO_MV_UPDATE_SUBROUTINE
        U2ConnectionStringBuilder l = new U2ConnectionStringBuilder();
        l.Server = "127.0.0.1";
        l.UserID = "user";
        l.Password = "pass";
        l.Database = "HS.SALES";
        l.ServerType = "universe";
        string lconnstr = l.ToString();
        U2Connection c = new U2Connection();
        c.ConnectionString = lconnstr;
        c.Open();
        U2Command command = c.CreateCommand();
        command.CommandText = "CALL DATASET_TO_MV_UPDATE_SUBROUTINE(?)";
        command.CommandType = CommandType.StoredProcedure;
        U2Parameter p1 = new U2Parameter();
        p1.Value = "";
        p1.Direction = ParameterDirection.InputOutput;
        p1.ParameterName = "@arg_data";
        command.Parameters.Add(p1);

        command.Parameters[0].DataTable_To_MV(dt_changed);

        // modified data going to subroutine
        string lData = (string)command.Parameters[0].Value;

        command.ExecuteNonQuery();
    }

update code

单击“更新按钮”时,请参阅调试器中的“修改的值”。 debugger

U2 Subrotine返回结果集/数据集

在Visual Studio Server Explorer中创建U2数据连接。展开存储过程节点。 server explorer u2 connection

转到返回结果集/数据集的子例程。将子例程拖放到DataSet Designer中。 它显示了INPUT参数和结果集/数据集列。

drag and drop subroutine