2

次のサブルーチンがあります。引数 1 に INPUT を取り、引数 2 に多値データの OUTPUT を送信します。

サブルーチン MV_TO_DATASET_SELECT_SUBROUTINE(ARG_INPUT,ARG_OUTPUT)

x = ARG_INPUT ARG_OUTPUT = "100":@VM:"101":@VM:"102":@VM:"103":@FM:"ナンシー":@VM:"アンドリュー":@VM:"ジャネット" :@VM:"マーガレット":@FM:"01/06/1991":@VM:"06/07/1996":@VM:"11/08/1999":@VM:"12/10/2001 "

戻る

上記のサブルーチンの多値データのスキーマは次のとおりです。

        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));
4

1 に答える 1

3

このタスクは、次のいずれかの方法で達成できます。

  • MV_To_DataTable() と DataTable_To_MV() を使用します。Empty DataTable を Empty DataSet Deginer にドラッグ&ドロップすることで、サブルーチンのスキーマを作成できます。
  • Visual Studio サーバー エクスプローラーの U2 サブルーチンを DataSet Designer にドラッグ アンド ドロップする。U2 Subrotine は、ST=SQLExecDirect(@HSTMT, "SELECT F1 AS COL1,F2 AS COL2 ,F3 AS COL3 FROM @TMP SLIST 9 ORDER BY 1") などの API を実行して、結果セット/データセットを返します。

MV_To_DataTable() と DataTable_To_MV() を使用する

ASP.NET Web アプリケーション プロジェクトを作成します。プロジェクト名に「WebApplication_Subroutine」と入力します。 ap.net アプリを作成する

U2NETDK アセンブリへの参照を追加 (U2.Data.Client) 参照を追加

ヘッダー「ASP.NET へようこそ!」を変更します。「U2 Toolkit for .NET Demo on Business Logic Subroutine の多値文字列データから .NET DataSet へようこそ!」 タイトルを変更

「Default.aspx」ファイルを開き、デザイン モードに移動します。 Web ページをデザイン モードで開く

以下をせよ:

  • ドラッグ アンド ドロップ ボタン コントロール。「ロード」と名付けます</li>
  • ドラッグ アンド ドロップ ボタン コントロール。名前を「更新」にします</li>
  • GridView コントロールをドラッグ アンド ドロップします。

    ドラッグ アンド ドロップ ボタン

ソリューション エクスプローラーを右クリックします。[追加] -> [新しいアイテム - データセット] を選択します。[名前] ボックスに「Employee.xsd」と入力します</p>

新しいアイテム - データセット

DataTable をデザイナーにドラッグ アンド ドロップします。名前を「従業員」テーブルに変更します。 データテーブルをドラッグ

3 つの新しい列を作成します (U2 サブルーチン スキーマ):

  • ID – データ型: INT
  • 名前 – データ型: STRING
  • HireDate - データタイプ: DATE 3つの列を作成します データ型列

「Default.aspx」ファイルをデザイン モードで開きます。「読み込みボタン」をダブルクリックします。イベント ハンドラ コード ビハインドを作成します。 evernt ハンドラをロードする

次のコードをカット アンド ペーストします。

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();
        }

コードをロード

アプリケーションを実行します。「ロード」ボタンを押します。

asp.net アプリを実行する

「Default.aspx」ファイルをデザイン モードで開きます。「更新ボタン」をダブルクリックします。コードビハインドページにイベントハンドラーを作成します。次のコードをカット アンド ペーストします。

        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();
    }

コードを更新する

[更新] ボタンをクリックすると、デバッガーで変更された値が表示されます。 デバッガ

U2 サブルーチンは結果セット/データセットを返します

Visual Studio サーバー エクスプローラーで U2 データ接続を作成します。ストア プロシージャ ノードを展開します。 サーバーエクスプローラーu2接続

結果セット/データセットを返すサブルーチンに移動します。サブルーチンを DataSet Designer にドラッグ アンド ドロップします。INPUT 引数と結果セット/データセットの列が表示されます。

サブルーチンのドラッグ アンド ドロップ

于 2013-02-17T17:19:28.780 に答える