teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

編集

2018/06/28 02:55

投稿

xlostdjx
xlostdjx

スコア39

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
+ 実現したいこと。
1
- StockList.cs の public void CSV_Output_Click(object sender, EventArgs e){}
2
+ connectionDb.cs のpublic void CSV_OutputData(SaveFileDialog result)
2
- connectionDb.cs のデータをもってきたいです。
3
+ StockList.csのDataGridViewのデータをもってきたいです。
3
4
  ご教授お願いします。
4
5
 
5
6
 
@@ -30,15 +31,86 @@
30
31
  {
31
32
  InitializeComponent();
32
33
  }
33
- /// <summary>
34
+ // DataTableを作成
35
+ DataTable DT = new DataTable();
36
+ OracleConnection Connect = new OracleConnection();
37
+
34
- /// CSV出力ボタン押下時
38
+ // 接続文字列の設定
35
- /// </summary>
39
+ string ConnectionString = ConfigurationManager.ConnectionStrings["OracleDB"].ConnectionString;
36
- public void CSV_Output_Click(object sender, EventArgs e)
40
+ Connect.ConnectionString = ConnectionString;
41
+ try
37
- {
42
+ {
43
+ // DB接続する
44
+ Connect.Open();
45
+ // 一覧取得用SQL文を作成
38
- //string filename = System.String.Empty;
46
+ StringBuilder SQL = new StringBuilder();
39
-
40
- //ここにconnectionDb.csのデータを引数??で持ってきたい
47
+ // inner join 指定した2つカラムに基づく同じデータを合わせる
48
+ // ORDER BY 指定したカラムのソート順でグループ枠で並び替える。
49
+ // WHERE 条件を指定して検索する
50
+ SQL.AppendLine("SELECT");
51
+ SQL.AppendLine(" TS.tana_cd,");
52
+ SQL.AppendLine(" MT.tana_nm,");
53
+ SQL.AppendLine(" TS.item_cd,");
54
+ SQL.AppendLine(" MI.item_nm,");
55
+ SQL.AppendLine(" TS.in_out_date,");
56
+ SQL.AppendLine(" TS.in_out_type,");
57
+ SQL.AppendLine(" TS.in_out_quantity,");
58
+ SQL.AppendLine(" TS.QUANTITY,");
59
+ SQL.AppendLine(" MI.unit_name,");
60
+ SQL.AppendLine("TS.memo");
61
+ SQL.AppendLine("FROM t_stock TS");
62
+ SQL.AppendLine(" inner join m_tana MT");
63
+ SQL.AppendLine(" on TS.tana_cd = MT.tana_cd");
64
+ SQL.AppendLine(" inner join m_item MI");
65
+ SQL.AppendLine(" on TS.item_cd = MI.item_cd");
66
+ SQL.AppendLine("WHERE");
67
+ // WHERE ◯ = ◯ が等しければすべての条件が 「true」になる
68
+ SQL.AppendLine("0 = 0");
69
+ // !を先頭につけてtrueとfalseを入れ替える事もできる。例 if (!string.IsNullOrEmpty(RackCode.Text)
70
+ SQL.AppendLine(" and TS.in_out_date BETWEEN " + "'" + InOutFromDate.Value.ToString("yyyy/MM/dd") + "'");
71
+ SQL.AppendLine(" and" + "'" + InOutToDate.Value.ToString("yyyy/MM/dd") + "'");
72
+ if (string.IsNullOrEmpty(RackCode.Text) == false)
73
+ {
74
+ SQL.AppendLine("and TS.tana_cd = " + "'" + RackCode.Text + "'");
75
+ }
76
+ if (string.IsNullOrEmpty(ItemCode.Text) == false)
77
+ {
78
+ SQL.AppendLine(" and TS.item_cd = " + "'" + ItemCode.Text + "'");
79
+ }
80
+ if (InOutType.SelectedIndex != 0)
81
+ {
82
+ SQL.AppendLine(" and TS.in_out_type = " + "'" + InOutType.SelectedIndex + "'");
83
+ }
84
+ SQL.AppendLine("ORDER BY");
85
+ SQL.AppendLine(" TS.tana_cd,");
86
+ SQL.AppendLine(" TS.item_cd,");
87
+ SQL.AppendLine(" TS.in_out_date,");
88
+ SQL.AppendLine(" TS.in_out_type");
89
+ // テーブルソースからデータを取得する
90
+ var DA = new OracleDataAdapter(SQL.ToString(), Connect);
91
+ // SQL文の結果をDaTaTableに格納する
92
+ DA.Fill(DT);
93
+ // DataGridViewにDataTableをセット
94
+ DataGrid.DataSource = DT;
95
+ // DB接続解除
96
+ Connect.Close();
97
+
98
+ // DataGridの行数の取得
99
+ int LineCount = (DataGrid.BindingContext[DataGrid.DataSource, DataGrid.DataMember].Count);
100
+ // 3桁区切り制御
101
+ string Delimitern = String.Format("{0:#,##0} ", LineCount);
102
+ // データ件数に表示
103
+ DataCount.Text = Delimitern;
104
+ }
105
+ // Exception(Oracle Ver.) アプリの実行中に起きるエラーを表す
106
+ catch (OracleException ex)
107
+ {
108
+ // エラーが起きたときにエラーメッセージとスタックトレースを表示させる。(覚えておく)
109
+ string trace = Environment.StackTrace;
110
+ MessageBox.Show("エラーが起きました!" + trace);
111
+ }
41
112
  }
113
+
42
114
  ```
43
115
 
44
116
  connectionDb.cs
@@ -53,15 +125,12 @@
53
125
 
54
126
  namespace StockList
55
127
  {
56
- // StockListFormのDataGridViewのデータを取得する
57
-
58
- //クラスを継承する
59
- class OutputFile
128
+ public class OutputFile
60
129
  {
61
130
  /// <summary>
62
- /// CSV出力ボタン押下時
131
+ /// SCVダイアログ
63
132
  /// </summary>
64
- public void CSV_WhenPressingDown()
133
+ public void CSV_Output()
65
134
  {
66
135
  // SaveFileDialogを作成する
67
136
  SaveFileDialog result = new SaveFileDialog();
@@ -86,21 +155,24 @@
86
155
  //「キャンセル」ボタンまたは「×」ボタンが選択された時の処理
87
156
  return;
88
157
  }
89
-
90
- //CSV出力
158
+ // CSV出力
91
- CSV_Output(result);
159
+ CSV_OutputData(result);
92
160
  }
93
-
94
161
  /// <summary>
95
162
  /// CSV出力
96
163
  /// </summary>
97
- public void CSV_Output(FileDialog result)
164
+ ここの関数 public void CSV_OutputData(SaveFileDialog result)
98
165
  {
99
166
 
100
- DataGridView DG = new DataGridView();
167
+ //ここにDataGridViewのデータを持っていきたい
168
+
169
+
101
170
  // 保存用のファイルを開く ( ファイルパス)( ファイル名 ) (文字コード指定)
102
- using (System.IO.StreamWriter writer = new StreamWriter(result.FileName, false, Encoding.GetEncoding("shift_jis")))
171
+ using (StreamWriter writer = new StreamWriter(result.FileName, false, Encoding.GetEncoding("shift_jis")))
103
172
  {
173
+
174
+ connectionDb.csの DataGridViewのデータを持っていきたい
175
+
104
176
  // リストの初期化
105
177
  List<String> strList;
106
178
  strList = new List<String>();
@@ -143,6 +215,4 @@
143
215
  }
144
216
  }
145
217
  }
146
- }
147
-
148
218
  ```