/// <summary> /// SaveJson Method(To save records in Json Format) /// </summary> /// <returns>string</returns> public string SaveJson() { TableRecords tableRecords = null; List <TableRecords> lstTableRecords = new List <TableRecords>(); int tblNo = -1; foreach (DTTable dt in this._tbls) { tblNo++; tableRecords = new TableRecords(); tableRecords.tbl = dt.TableName; tableRecords.col = new Dictionary <string, string>(); foreach (DTColumn col in dt.Cols) { tableRecords.col.Add(col.ColName, DTColumn.EnumToString(col.ColType)); } tableRecords.row = new ArrayList(); Dictionary <string, object> rowDetails = null; int colNo = 0; int rowStateFlag = 0; foreach (DTRow dr in dt.Rows) { rowDetails = new Dictionary <string, object>(); rowStateFlag = 1; foreach (DTColumn col in dt.Cols) { colNo = colNo + 1; object colValue; colValue = dr[col.ColName]; // add values to rowdetails based on colvalue. string strTemp = CustomMarshaler.StringFromPrimitivetype(colValue, false); rowDetails.Add(col.ColName, strTemp); // adding rowState in rowDeatils. if (rowStateFlag == 1 && colNo == dt.Cols.Count) { rowDetails.Add("rowstate", (int)dr.RowState); rowStateFlag = 0; colNo = 0; } } tableRecords.row.Add(rowDetails); } lstTableRecords.Add(tableRecords); } //converting the list into json format and return that string value string json = JsonConvert.SerializeObject(lstTableRecords); return(json); }
/// <summary>テキストとしてセーブする</summary> /// <param name="tw">任意のTextWriter </param> public void Save(TextWriter tw) { // 表番号の初期化(負荷テスト用のID用) int tblNo = -1; foreach (DTTable dt in this._tbls) { // 表番号のインクリメント tblNo++; // 表名 tw.WriteLine("tbl:" + dt.TableName); tw.WriteLine("---"); // 列情報 foreach (DTColumn col in dt.Cols) { tw.WriteLine("col:" + col.ColName + "," + DTColumn.EnumToString(col.ColType)); } tw.WriteLine("---"); // 行番号の初期化(負荷テスト用のID用) int rowNo = -1; // 行のセル foreach (DTRow dr in dt.Rows) { // 行番号のインクリメント rowNo++; // 列番号の初期化(負荷テスト用のID用) int colNo = -1; foreach (object o in dr) { // 列番号のインクリメント colNo++; string strTemp = CustomMarshaler.StringFromPrimitivetype(o, true); tw.WriteLine( "cel:" + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() + ":" + strTemp); } // 行ステータス tw.WriteLine("row:" + (int)dr.RowState); tw.WriteLine("---"); } } }
/// <summary>テキストとしてセーブする</summary> /// <param name="tw">任意のTextWriter </param> public void Save(TextWriter tw) { // 表番号の初期化(負荷テスト用のID用) int tblNo = -1; foreach (DTTable dt in this._tbls) { // 表番号のインクリメント tblNo++; // 表名 tw.WriteLine("tbl:" + dt.TableName); tw.WriteLine("---"); // 列情報 foreach (DTColumn col in dt.Cols) { tw.WriteLine("col:" + col.ColName + "," + DTColumn.EnumToString(col.ColType)); } tw.WriteLine("---"); // 行番号の初期化(負荷テスト用のID用) int rowNo = -1; // 行のセル foreach (DTRow dr in dt.Rows) { // 行番号のインクリメント rowNo++; // 列番号の初期化(負荷テスト用のID用) int colNo = -1; foreach (object o in dr) { // 列番号のインクリメント colNo++; if (o == null) { // null値はnullと出力する。 tw.WriteLine( "cel:" + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() + ":" + "null"); } else if (DTColumn.CheckType(o, DTType.String)) { // 文字列は改行を処理する string strTemp = ((string)o); strTemp = strTemp.Replace("\r", "\rrnr:"); strTemp = strTemp.Replace("\n", "\rrnn:"); strTemp = strTemp.Replace("\r", "\r\n"); tw.WriteLine( "cel:" + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() + ":" + strTemp); } else if (DTColumn.CheckType(o, DTType.ByteArray)) { // バイト配列は、Base64エンコードして電文に乗せる string strBase64 = Convert.ToBase64String((byte[])o); tw.WriteLine( "cel:" + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() + ":" + strBase64); } else if (DTColumn.CheckType(o, DTType.DateTime)) { // DateTimeは、yyyy/M/d-H:m:s.fffとする。 DateTime dttm = (DateTime)o; string strDttm = ""; strDttm += dttm.Year + "/"; strDttm += dttm.Month + "/"; strDttm += dttm.Day + "-"; strDttm += dttm.Hour + ":"; strDttm += dttm.Minute + ":"; strDttm += dttm.Second + "."; strDttm += dttm.Millisecond; tw.WriteLine( "cel:" + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() + ":" + strDttm); } else { // 通常通り、ToStringして出力 tw.WriteLine( "cel:" + tblNo.ToString() + "," + rowNo.ToString() + "," + colNo.ToString() + ":" + o.ToString()); } } // 行ステータス tw.WriteLine("row:" + (int)dr.RowState); tw.WriteLine("---"); } } }
/// <summary> /// SaveJson Method(To save records in Json Format) /// </summary> /// <returns>string</returns> public string SaveJson() { TableRecords tableRecords = null; List <TableRecords> lstTableRecords = new List <TableRecords>(); int tblNo = -1; foreach (DTTable dt in this._tbls) { tblNo++; tableRecords = new TableRecords(); tableRecords.tbl = dt.TableName; tableRecords.col = new Dictionary <string, string>(); foreach (DTColumn col in dt.Cols) { tableRecords.col.Add(col.ColName, DTColumn.EnumToString(col.ColType)); } tableRecords.row = new ArrayList(); Dictionary <string, object> rowDetails = null; int colNo = 0; int rowStateFlag = 0; foreach (DTRow dr in dt.Rows) { rowDetails = new Dictionary <string, object>(); rowStateFlag = 1; foreach (DTColumn col in dt.Cols) { colNo = colNo + 1; object colValue; colValue = dr[col.ColName]; if (colValue == null) { //add null to rowDetails rowDetails.Add(col.ColName, null); } else if (DTColumn.CheckType(colValue, DTType.String)) { string strTemp = ((string)colValue); rowDetails.Add(col.ColName, strTemp); } else if (DTColumn.CheckType(colValue, DTType.ByteArray)) { // バイト配列は、Base64エンコードして電文に乗せる string strBase64 = Convert.ToBase64String((byte[])colValue); rowDetails.Add(col.ColName, strBase64); } else if (DTColumn.CheckType(colValue, DTType.DateTime)) { // DateTimeは、yyyy/M/d-H:m:s.fffとする。 DateTime dttm = (DateTime)colValue; string strDttm = ""; strDttm += dttm.Year + "/"; strDttm += dttm.Month + "/"; strDttm += dttm.Day + "-"; strDttm += dttm.Hour + ":"; strDttm += dttm.Minute + ":"; strDttm += dttm.Second + "."; strDttm += dttm.Millisecond; rowDetails.Add(col.ColName, strDttm); } else { rowDetails.Add(col.ColName, colValue.ToString()); } //adding rowState in rowDeatils if (rowStateFlag == 1 && colNo == dt.Cols.Count) { rowDetails.Add("rowstate", (int)dr.RowState); rowStateFlag = 0; colNo = 0; } } tableRecords.row.Add(rowDetails); } lstTableRecords.Add(tableRecords); } //converting the list into json format and return that string value string json = JsonConvert.SerializeObject(lstTableRecords); return(json); }