このタスクは、次のいずれかの方法で達成できます。
- 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」と入力します。
U2NETDK アセンブリへの参照を追加 (U2.Data.Client)
ヘッダー「ASP.NET へようこそ!」を変更します。「U2 Toolkit for .NET Demo on Business Logic Subroutine の多値文字列データから .NET DataSet へようこそ!」
「Default.aspx」ファイルを開き、デザイン モードに移動します。
以下をせよ:
ソリューション エクスプローラーを右クリックします。[追加] -> [新しいアイテム - データセット] を選択します。[名前] ボックスに「Employee.xsd」と入力します</p>
DataTable をデザイナーにドラッグ アンド ドロップします。名前を「従業員」テーブルに変更します。
3 つの新しい列を作成します (U2 サブルーチン スキーマ):
- ID – データ型: INT
- 名前 – データ型: STRING
- HireDate - データタイプ: DATE
「Default.aspx」ファイルをデザイン モードで開きます。「読み込みボタン」をダブルクリックします。イベント ハンドラ コード ビハインドを作成します。
次のコードをカット アンド ペーストします。
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();
}
アプリケーションを実行します。「ロード」ボタンを押します。
「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 データ接続を作成します。ストア プロシージャ ノードを展開します。
結果セット/データセットを返すサブルーチンに移動します。サブルーチンを DataSet Designer にドラッグ アンド ドロップします。INPUT 引数と結果セット/データセットの列が表示されます。