質問編集履歴
1
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
実現したいこと。
|
1
|
-
|
2
|
+
connectionDb.cs のpublic void CSV_OutputData(SaveFileDialog result)
|
2
|
-
に
|
3
|
+
にStockList.csのDataGridViewのデータをもってきたいです。
|
3
4
|
ご教授お願いします。
|
4
5
|
|
5
6
|
|
@@ -30,15 +31,86 @@
|
|
30
31
|
{
|
31
32
|
InitializeComponent();
|
32
33
|
}
|
33
|
-
|
34
|
+
// DataTableを作成
|
35
|
+
DataTable DT = new DataTable();
|
36
|
+
OracleConnection Connect = new OracleConnection();
|
37
|
+
|
34
|
-
|
38
|
+
// 接続文字列の設定
|
35
|
-
|
39
|
+
string ConnectionString = ConfigurationManager.ConnectionStrings["OracleDB"].ConnectionString;
|
36
|
-
|
40
|
+
Connect.ConnectionString = ConnectionString;
|
41
|
+
try
|
37
|
-
|
42
|
+
{
|
43
|
+
// DB接続する
|
44
|
+
Connect.Open();
|
45
|
+
// 一覧取得用SQL文を作成
|
38
|
-
|
46
|
+
StringBuilder SQL = new StringBuilder();
|
39
|
-
|
40
|
-
//
|
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
|
-
|
128
|
+
public class OutputFile
|
60
129
|
{
|
61
130
|
/// <summary>
|
62
|
-
///
|
131
|
+
/// SCVダイアログ
|
63
132
|
/// </summary>
|
64
|
-
public void
|
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
|
-
|
159
|
+
CSV_OutputData(result);
|
92
160
|
}
|
93
|
-
|
94
161
|
/// <summary>
|
95
162
|
/// CSV出力
|
96
163
|
/// </summary>
|
97
|
-
public void
|
164
|
+
ここの関数 public void CSV_OutputData(SaveFileDialog result)
|
98
165
|
{
|
99
166
|
|
100
|
-
DataGridView
|
167
|
+
//ここにDataGridViewのデータを持っていきたい
|
168
|
+
|
169
|
+
|
101
170
|
// 保存用のファイルを開く ( ファイルパス)( ファイル名 ) (文字コード指定)
|
102
|
-
using (
|
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
|
```
|