/// <summary> /// Shippers テーブルのレコード全件を DataReader として取得する /// </summary> /// <param name="ddlDap">データプロバイダ</param> /// <param name="ddlMode1">静的、動的のクエリ モード(共通Dao選択時)</param> /// <param name="ddlMode2">静的、動的のクエリ モード</param> /// <param name="ddlExRollback">コミット、ロールバック</param> /// <returns>Shippers テーブルのレコードを表示するPartialViewResult</returns> public ActionResult SelectAll_DR(string ddlDap, string ddlMode1, string ddlMode2, string ddlExRollback) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button4", "SelectAll_DR", ddlDap + "%" + ddlMode1 + "%" + ddlMode2 + "%" + ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; // Ajax.BeginFormでは、UpdateTargetIdで指定した // ターゲット以外を更新する場合、JavaScriptでの対応が必要。 // #ここではjQueryを使用している。 string scriptText = "$('#lblMessage').text('" + message + "');"; return(JavaScript(scriptText)); } else { // 結果(正常系) CrudModel model = new CrudModel(); model.shippers = new DataSets.DsNorthwind.ShippersDataTable(); DataTable dt = (DataTable)testReturnValue.Obj; foreach (DataRow row in dt.Rows) { DataSets.DsNorthwind.ShippersRow srow = model.shippers.NewShippersRow(); srow.ShipperID = int.Parse(row[0].ToString()); srow.CompanyName = row[1].ToString(); srow.Phone = row[2].ToString(); model.shippers.Rows.Add(srow); } // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。 return(PartialView("_ChartView", model)); } }
/// <summary> /// Shippers テーブルのレコード全件を DataReader として取得する /// </summary> /// <param name="ddlDap">データプロバイダ</param> /// <param name="ddlMode1">静的、動的のクエリ モード(共通Dao選択時)</param> /// <param name="ddlMode2">静的、動的のクエリ モード</param> /// <param name="ddlExRollback">コミット、ロールバック</param> /// <param name="form">入力フォームの情報</param> /// <returns>再描画(ViewResult)</returns> public ActionResult SelectAll_DR(string ddlDap, string ddlMode1, string ddlMode2, string ddlExRollback, FormCollection form) { // 引数クラスを生成 // 下位(B・D層)は、テスト クラスを流用する TestParameterValue testParameterValue = new TestParameterValue( "CrudMu", "button4", "SelectAll_DR", ddlDap + "%" + ddlMode1 + "%" + ddlMode2 + "%" + ddlExRollback, new MyUserInfo("aaa", "192.168.1.1")); // 戻り値 TestReturnValue testReturnValue; // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = DbEnum.IsolationLevelEnum.DefaultTransaction; // B層呼出し+都度コミット LayerB layerB = new LayerB(); testReturnValue = (TestReturnValue)layerB.DoBusinessLogic(testParameterValue, iso); // 結果表示するメッセージ string message = ""; CrudModel model = new CrudModel(); // 値の復元のため、CopyInputValuesを呼び出す。 model.CopyInputValues(form); if (testReturnValue.ErrorFlag == true) { // 結果(業務続行可能なエラー) message = "ErrorMessageID:" + testReturnValue.ErrorMessageID + ";"; message += "ErrorMessage:" + testReturnValue.ErrorMessage + ";"; message += "ErrorInfo:" + testReturnValue.ErrorInfo; // メッセージを設定。 model.Message = message; } else { // 結果(正常系) model.shippers = new DataSets.DsNorthwind.ShippersDataTable(); DataTable dt = (DataTable)testReturnValue.Obj; foreach (DataRow row in dt.Rows) { DataSets.DsNorthwind.ShippersRow srow = model.shippers.NewShippersRow(); srow.ShipperID = int.Parse(row[0].ToString()); srow.CompanyName = row[1].ToString(); srow.Phone = row[2].ToString(); model.shippers.Rows.Add(srow); } } // Html.BeginFormでは、全体更新。 return(View("Index", model)); }