質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

6683閲覧

yyyy/MM/dd編集がCSV出力すると反映されていない。

xlostdjx

総合スコア39

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/06/27 05:38

編集2018/06/27 06:11

今、InOutFromDateをyyyy/MM/dd編集しているのですがSQLだと時間が表示されていなく指定通りなのですがCSV出力してエディタで見ると反映されていません。
CSV出力してyyyy/MM/dd編集のまま表示させたいのですがどこ改善すればよろしいでしょうか??

C#

1 2 /// <summary> 3 /// CSV出力ボタン押下時 4 /// </summary> 5 private void CSV_Output_Click(object sender, EventArgs e) 6 { 7 // SaveFileDialogを作成する 8 SaveFileDialog result = new SaveFileDialog(); 9 result.Title = "ファイルを保存する"; 10 // 初期表示時のディレクトリを指定 11 result.InitialDirectory = @"C:\Users\Admin\Downloads"; 12 // ファイル名を指定し取得する 13 result.FileName = @"ForOutput.csv"; 14 // 選択できるファイルの種類を指定する 15 result.Filter = "CSV (カンマ区切り)|*.csv"; 16 // ファイル出力(保存)ダイアログ表示  17 DialogResult FileOutput = result.ShowDialog(); 18 19 // //「保存」ボタンが押された時の処理 20 if (FileOutput == DialogResult.OK) 21 { 22 //指定されたファイルのパスを取得する 23 string fileName = result.FileName; 24 } 25 else if (FileOutput == DialogResult.Cancel) 26 { 27 //「キャンセル」ボタンまたは「×」ボタンが選択された時の処理 28 return; 29 } 30 31 // 保存用のファイルを開く ( ファイルパス )( ファイル名 ) (文字コード指定) 32 using (StreamWriter writer = new StreamWriter(result.FileName, false, Encoding.GetEncoding("shift_jis"))) 33 { 34 //DataGridViewの列を取得 35 int rowCount = DataGrid.Rows.Count; 36 if (DataGrid.AllowUserToAddRows == true) 37 { 38 // 最後の新規入力用の1行分を差し引く 39 rowCount = rowCount - 1; 40 } 41 42 // リストの初期化 43 List<String> strList; 44 strList = new List<String>(); 45 46 // ヘッダ部の出力 47 // Columns.Count カルム数ループ 48 for (int j = 0; j < DataGrid.Columns.Count; j++) 49 { 50 // カラムのヘッダのテキストをリストに追加 51 strList.Add(DataGrid.Columns[j].HeaderCell.Value.ToString()); 52 } 53 // 配列へ変換 54 String[] strArray = strList.ToArray(); 55 // CSV 形式に変換 // カンマ区切り 56 String strCsvData = String.Join(",", strArray); 57 //ヘッダを出力 58 writer.WriteLine(strCsvData); 59 60 // データ部の出力 61 // rowCount 行数文ループ 62 for (int i = 0; i < rowCount; i++) 63 { 64 // リストの初期化 65 strList = new List<String>(); 66 // Columns.Count カルムの数だけループする 67 for (int j = 0; j < DataGrid.Columns.Count; j++) 68 { 69 // 列と行のテキストをリストに追加 70 strList.Add(DataGrid[j, i].Value.ToString()); 71 } 72 // 配列へ変換 73 String[] stgArray = strList.ToArray(); 74 // CSV 形式に変換 // カンマ区切り 75 String stgCsvData = String.Join(",", stgArray); 76 //列と行を出力 77 writer.WriteLine(stgCsvData); 78 } 79 } 80 }

出力データ
イメージ説明
CSVファイル
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/06/27 05:40 編集

もう少し確認した状況を具体的に記載してください。(難しければ画面キャプチャでも結構です) >CSV出力してエディタで見ると
Wind

2018/06/27 05:44

エディタでどのように表示されているか次第ですしね。Excelで開いて日付と認識されずに計算しちゃっている場合もありますし。
tkturbo

2018/06/27 05:51

「CSV出力してエディタで見る」←csv出力している部分のソースも出してください。提示されているソースに出力箇所がありません。
xlostdjx

2018/06/27 05:57 編集

すみません。一番下に画像を追加しました。
Wind

2018/06/27 06:06

確かに日付に「00:00:00」が付加されていますね。SQLファイルからCSVファイルへの変換や出力は、どの様に行っているのでしょうか?
xlostdjx

2018/06/27 06:12

CSV出力ファイルのコードに置き換えました。
xlostdjx

2018/06/27 06:27

リストに追加するときに、FormattedValueに変更するといけました。
guest

回答3

0

データベースのデータ型がDateTimeではないでしょうか。
DataGridViewのセルのValueもDateTime型となっていると思われるので
ToStringで"yyyy/MM/dd HH:mm:ss"と変換されているのでしょう。

もし、そのカラムのスタイルのFormatで書式設定しているもしくは、CellFormattingイベントで表示する書式を変更しているのであれば、FormatedValueを使用してください。
(これは以前に指摘した点だと思います。)

上記の方法以外なのであれば、CSVにする時、その列の時のみToString時に書式設定してください。

投稿2018/06/27 06:37

YAmaGNZ

総合スコア10222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

未検証ですが、value以外にDataGridViewCell.FormattedValueプロパティがあるようです。該当セルのみこちらを利用してみるのは如何でしょうか?

投稿2018/06/27 06:33

takyafumin

総合スコア2335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

リストに追加するときに、FormattedValueに変更するといけました。

投稿2018/06/27 06:27

xlostdjx

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問