質問編集履歴
25
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -82,7 +82,7 @@
|
|
82
82
|
}
|
83
83
|
|
84
84
|
```
|
85
|
-
**
|
85
|
+
**tamotoさんのをコメントをみて ↑あきらめて…
|
86
86
|
1/17追記 新解決策 SqlBulkCopy あと一歩で解決か!?汗。。**
|
87
87
|
```
|
88
88
|
public static void ExecuteCopy(string tableName)
|
@@ -115,7 +115,7 @@
|
|
115
115
|
あと一歩なのかロケールIDが一致しないといわれる。
|
116
116
|
このやり方でSQLserver側の0fieldが mdf側になくても行けるのかがいまいち分かりませんが
|
117
117
|
ただ '1033'→英語 '1041'→日本語を指定出来るのかな… ?? またググってる最中です。
|
118
|
-
###2017/02/06追記
|
118
|
+
###2017/02/06追記 修正箇所
|
119
119
|
```
|
120
120
|
|
121
121
|
using (DataTable datatable = new DataTable())// 2017/02/06追記
|
@@ -129,4 +129,5 @@
|
|
129
129
|
}
|
130
130
|
}// 2017/02/06追記
|
131
131
|
|
132
|
-
```
|
132
|
+
```
|
133
|
+
tomatoさんのアドバイスで完璧にクリアできました。
|
24
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -115,22 +115,18 @@
|
|
115
115
|
あと一歩なのかロケールIDが一致しないといわれる。
|
116
116
|
このやり方でSQLserver側の0fieldが mdf側になくても行けるのかがいまいち分かりませんが
|
117
117
|
ただ '1033'→英語 '1041'→日本語を指定出来るのかな… ?? またググってる最中です。
|
118
|
+
###2017/02/06追記
|
119
|
+
```
|
118
120
|
|
119
|
-
2017/02/06追記
|
120
|
-
|
121
|
-
###ヘディングのテキスト
|
122
|
-
```ここに言語を入力
|
123
|
-
|
124
121
|
using (DataTable datatable = new DataTable())// 2017/02/06追記
|
125
|
-
|
122
|
+
{// 2017/02/06追記
|
126
|
-
|
123
|
+
datatable.Load(rd);// 2017/02/06追記
|
127
|
-
using (var bulk = new SqlBulkCopy(SQLcn))
|
124
|
+
using (var bulk = new SqlBulkCopy(SQLcn))
|
128
|
-
|
125
|
+
{
|
129
|
-
|
126
|
+
bulk.BulkCopyTimeout = 10000;
|
130
|
-
|
127
|
+
bulk.DestinationTableName = string.Format("dbo.{0}",tableName);
|
131
|
-
|
128
|
+
bulk.WriteToServer(datatable); //2017/02/06 書換
|
132
|
-
|
133
|
-
|
129
|
+
}
|
134
130
|
}// 2017/02/06追記
|
135
131
|
|
136
132
|
```
|
23
完成
title
CHANGED
File without changes
|
body
CHANGED
@@ -114,4 +114,23 @@
|
|
114
114
|
|
115
115
|
あと一歩なのかロケールIDが一致しないといわれる。
|
116
116
|
このやり方でSQLserver側の0fieldが mdf側になくても行けるのかがいまいち分かりませんが
|
117
|
-
ただ '1033'→英語 '1041'→日本語を指定出来るのかな… ?? またググってる最中です。
|
117
|
+
ただ '1033'→英語 '1041'→日本語を指定出来るのかな… ?? またググってる最中です。
|
118
|
+
|
119
|
+
2017/02/06追記
|
120
|
+
|
121
|
+
###ヘディングのテキスト
|
122
|
+
```ここに言語を入力
|
123
|
+
|
124
|
+
using (DataTable datatable = new DataTable())// 2017/02/06追記
|
125
|
+
{// 2017/02/06追記
|
126
|
+
datatable.Load(rd);// 2017/02/06追記
|
127
|
+
using (var bulk = new SqlBulkCopy(SQLcn))
|
128
|
+
{
|
129
|
+
bulk.BulkCopyTimeout = 10000;
|
130
|
+
bulk.DestinationTableName = string.Format("dbo.{0}",tableName);
|
131
|
+
bulk.WriteToServer(datatable); //2017/02/06 書換
|
132
|
+
|
133
|
+
}
|
134
|
+
}// 2017/02/06追記
|
135
|
+
|
136
|
+
```
|
22
タイトル変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
C#とSQL文
|
1
|
+
C#とSQL文 mdfファイルのdataをSQLserverに追加したい SqlBulkCopyでロケールID違いのエラー
|
body
CHANGED
File without changes
|
21
テスト
title
CHANGED
File without changes
|
body
CHANGED
@@ -82,8 +82,8 @@
|
|
82
82
|
}
|
83
83
|
|
84
84
|
```
|
85
|
-
**tomatoさんのをコメントをみて
|
85
|
+
**tomatoさんのをコメントをみて ↑あきらめて…
|
86
|
-
1/17追記 あと一歩で解決か!?汗。。**
|
86
|
+
1/17追記 新解決策 SqlBulkCopy あと一歩で解決か!?汗。。**
|
87
87
|
```
|
88
88
|
public static void ExecuteCopy(string tableName)
|
89
89
|
{
|
20
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
C#とSQL文 ローカルにあるmdfファイルのテーブルごと SQLserverに追加したい
|
1
|
+
C#とSQL文 ローカルにあるmdfファイルのテーブルごと SQLserverに追加したい (ロケールID違い!?)
|
body
CHANGED
@@ -112,5 +112,6 @@
|
|
112
112
|
}
|
113
113
|
```
|
114
114
|
|
115
|
-
あと一歩なのかロケールIDが一致しないといわれる。
|
115
|
+
あと一歩なのかロケールIDが一致しないといわれる。
|
116
|
+
このやり方でSQLserver側の0fieldが mdf側になくても行けるのかがいまいち分かりませんが
|
116
117
|
ただ '1033'→英語 '1041'→日本語を指定出来るのかな… ?? またググってる最中です。
|
19
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -94,7 +94,7 @@
|
|
94
94
|
SQLcn.Open();
|
95
95
|
|
96
96
|
var mdfsql = string.Format("SELECT * FROM [{0}]", tableName);
|
97
|
-
var mdfcmd = new SqlCommand(mdfsql,
|
97
|
+
var mdfcmd = new SqlCommand(mdfsql, mdfcn);
|
98
98
|
using (var rd = mdfcmd.ExecuteReader())
|
99
99
|
{
|
100
100
|
using (var bulk = new SqlBulkCopy(SQLcn))
|
18
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -90,7 +90,7 @@
|
|
90
90
|
using (var mdfcn = new SqlConnection(mdf接続文字列))
|
91
91
|
using (var SQLcn = new SqlConnection(SQLserver接続文字))
|
92
92
|
{
|
93
|
-
|
93
|
+
mdfcn.Open();
|
94
94
|
SQLcn.Open();
|
95
95
|
|
96
96
|
var mdfsql = string.Format("SELECT * FROM [{0}]", tableName);
|
17
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -87,8 +87,6 @@
|
|
87
87
|
```
|
88
88
|
public static void ExecuteCopy(string tableName)
|
89
89
|
{
|
90
|
-
//using (var connSrc = new OracleConnection(Settings.Default.OracleConnectionString))
|
91
|
-
|
92
90
|
using (var mdfcn = new SqlConnection(mdf接続文字列))
|
93
91
|
using (var SQLcn = new SqlConnection(SQLserver接続文字))
|
94
92
|
{
|
16
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -82,7 +82,8 @@
|
|
82
82
|
}
|
83
83
|
|
84
84
|
```
|
85
|
+
**tomatoさんのをコメントをみて
|
85
|
-
|
86
|
+
1/17追記 あと一歩で解決か!?汗。。**
|
86
87
|
```
|
87
88
|
public static void ExecuteCopy(string tableName)
|
88
89
|
{
|
@@ -103,10 +104,15 @@
|
|
103
104
|
bulk.BulkCopyTimeout = 10000;
|
104
105
|
bulk.DestinationTableName = string.Format("dbo.{0}",tableName);
|
105
106
|
bulk.WriteToServer(rd); //← ここでエラー ロケールIDが
|
106
|
-
//追加情報:ソース列 'フィルード名' のロケール ID '1033' と
|
107
|
+
//追加情報:ソース列 'フィルード名' のロケール ID '1033' と
|
108
|
+
//ターゲット列 'フィルード名' のロケール ID '1041' は
|
109
|
+
//一致していません。
|
107
110
|
}
|
108
111
|
|
109
112
|
}
|
110
113
|
|
111
114
|
}
|
112
|
-
```
|
115
|
+
```
|
116
|
+
|
117
|
+
あと一歩なのかロケールIDが一致しないといわれる。 このやり方で0fieldがなくても行けるのか…?
|
118
|
+
ただ '1033'→英語 '1041'→日本語を指定出来るのかな… ?? またググってる最中です。
|
15
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -81,4 +81,32 @@
|
|
81
81
|
}
|
82
82
|
}
|
83
83
|
|
84
|
+
```
|
85
|
+
###tomatoさんのをコメントをみて 1/17追記 あと一歩で解決か!?汗。。
|
86
|
+
```
|
87
|
+
public static void ExecuteCopy(string tableName)
|
88
|
+
{
|
89
|
+
//using (var connSrc = new OracleConnection(Settings.Default.OracleConnectionString))
|
90
|
+
|
91
|
+
using (var mdfcn = new SqlConnection(mdf接続文字列))
|
92
|
+
using (var SQLcn = new SqlConnection(SQLserver接続文字))
|
93
|
+
{
|
94
|
+
Diacn.Open();
|
95
|
+
SQLcn.Open();
|
96
|
+
|
97
|
+
var mdfsql = string.Format("SELECT * FROM [{0}]", tableName);
|
98
|
+
var mdfcmd = new SqlCommand(mdfsql, Diacn);
|
99
|
+
using (var rd = mdfcmd.ExecuteReader())
|
100
|
+
{
|
101
|
+
using (var bulk = new SqlBulkCopy(SQLcn))
|
102
|
+
{
|
103
|
+
bulk.BulkCopyTimeout = 10000;
|
104
|
+
bulk.DestinationTableName = string.Format("dbo.{0}",tableName);
|
105
|
+
bulk.WriteToServer(rd); //← ここでエラー ロケールIDが
|
106
|
+
//追加情報:ソース列 'フィルード名' のロケール ID '1033' とターゲット列 'フィルード名' のロケール ID '1041' は一致していません。
|
107
|
+
}
|
108
|
+
|
109
|
+
}
|
110
|
+
|
111
|
+
}
|
84
112
|
```
|
14
テスト
title
CHANGED
File without changes
|
body
CHANGED
@@ -21,6 +21,7 @@
|
|
21
21
|
2つ浮かびましたが…
|
22
22
|
・1のパターン SQL文で一括
|
23
23
|
・2のパターン insert文をC#で書いて一行つつでなら… (LINQも使える??)
|
24
|
+
2のパターンは何回もinsertするのでサーバーに負担かかりませんか?
|
24
25
|
今回は1のパターンを思考しています。。
|
25
26
|
↓ 1のパターンで考えた場合 (ごめんなさい2のパターンまで頭が回ってません。。。)
|
26
27
|
```
|
13
書き直し
title
CHANGED
File without changes
|
body
CHANGED
@@ -32,12 +32,14 @@
|
|
32
32
|
★問題点★
|
33
33
|
**[mdfデータベース名]**この部分
|
34
34
|
↓
|
35
|
-
①visual studioで追加してるから、mdfファイル名(サーバー名でだけいい?)
|
35
|
+
①**[mdfデータベース名]**visual studioで追加してるから、mdfファイル名(サーバー名でだけいい?)
|
36
36
|
→やってみたが駄目だった。(.mdfまで書く?)
|
37
37
|
②**[フルパス + mdfデータベース名]**(.mdfまで書く?)
|
38
|
-
→ちょっと
|
38
|
+
→ちょっと、やってみたがうまく行かず…
|
39
39
|
③プロバイダみたいなものが必要?
|
40
40
|
→**[Provider=]**or**[Driver=]**???mdf用の書き方がいまいち分からない
|
41
|
+
|
42
|
+
そもそもこのやり方でうまく行かないのか…
|
41
43
|
|
42
44
|
↓つくったINERT文をこれで
|
43
45
|
```
|
@@ -69,7 +71,7 @@
|
|
69
71
|
{
|
70
72
|
//トランザクションをロールバックします。
|
71
73
|
transaction.Rollback();
|
72
|
-
throw;
|
74
|
+
throw; ← ここでエラーになってる
|
73
75
|
}
|
74
76
|
finally
|
75
77
|
{
|
12
テスト
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,17 +27,17 @@
|
|
27
27
|
SQL接続文字 = @"Data Source=…"
|
28
28
|
|
29
29
|
INSERT文 ="INSERT INTO SQLserverのテーブル 名 (A_field,B_field,C_field,D_field)
|
30
|
-
SELECT * FROM
|
30
|
+
SELECT * FROM [mdfデータベース名].テーブル名 WHERE 条件のあるフィールド = 何らか条件"
|
31
31
|
```
|
32
|
-
|
32
|
+
★問題点★
|
33
33
|
**[mdfデータベース名]**この部分
|
34
34
|
↓
|
35
35
|
①visual studioで追加してるから、mdfファイル名(サーバー名でだけいい?)
|
36
36
|
→やってみたが駄目だった。(.mdfまで書く?)
|
37
|
-
②[フルパス + mdfデータベース名](.mdfまで書く?)
|
37
|
+
②**[フルパス + mdfデータベース名]**(.mdfまで書く?)
|
38
38
|
→ちょっとちやってみます。
|
39
39
|
③プロバイダみたいなものが必要?
|
40
|
-
→[Provider=]or[Driver=]???mdf用の書き方がいまいち分からない
|
40
|
+
→**[Provider=]**or**[Driver=]**???mdf用の書き方がいまいち分からない
|
41
41
|
|
42
42
|
↓つくったINERT文をこれで
|
43
43
|
```
|
11
テスト
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,12 +27,13 @@
|
|
27
27
|
SQL接続文字 = @"Data Source=…"
|
28
28
|
|
29
29
|
INSERT文 ="INSERT INTO SQLserverのテーブル 名 (A_field,B_field,C_field,D_field)
|
30
|
-
SELECT * FROM [mdfデータベース名].テーブル名 WHERE 条件のあるフィールド = 何らか条件"
|
30
|
+
SELECT * FROM **[mdfデータベース名].**テーブル名 WHERE 条件のあるフィールド = 何らか条件"
|
31
31
|
```
|
32
|
+
###★問題点
|
32
|
-
[mdfデータベース名]この部分
|
33
|
+
**[mdfデータベース名]**この部分
|
33
34
|
↓
|
34
35
|
①visual studioで追加してるから、mdfファイル名(サーバー名でだけいい?)
|
35
|
-
→やってみたが駄目だった。
|
36
|
+
→やってみたが駄目だった。(.mdfまで書く?)
|
36
37
|
②[フルパス + mdfデータベース名](.mdfまで書く?)
|
37
38
|
→ちょっとちやってみます。
|
38
39
|
③プロバイダみたいなものが必要?
|
10
見やすく
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,8 +19,9 @@
|
|
19
19
|
```
|
20
20
|
この様に共有サーバーに更新したいのですが…
|
21
21
|
2つ浮かびましたが…
|
22
|
-
・1のパターン SQL文で一括
|
22
|
+
・1のパターン SQL文で一括
|
23
|
-
・2のパターン
|
23
|
+
・2のパターン insert文をC#で書いて一行つつでなら… (LINQも使える??)
|
24
|
+
今回は1のパターンを思考しています。。
|
24
25
|
↓ 1のパターンで考えた場合 (ごめんなさい2のパターンまで頭が回ってません。。。)
|
25
26
|
```
|
26
27
|
SQL接続文字 = @"Data Source=…"
|
9
見やすく
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,15 +3,14 @@
|
|
3
3
|
|
4
4
|
ローカルにあるmdfファイルのテーブルごと
|
5
5
|
違うPCのSQLserverのテーブルに追加したいです。。
|
6
|
-
↓例
|
6
|
+
↓例 追加したいmdfファイルのデータ
|
7
7
|
```
|
8
|
-
ローカルmdfファイルのテーブル
|
9
8
|
A_field B_field C_field D_field
|
10
9
|
LCno1 名前1 電話1 メール1
|
11
10
|
LCno2 名前2 電話2 メール2
|
12
11
|
LCno3 名前3 電話3 メール3
|
13
12
|
```
|
14
|
-
↓SQLserverのテーブル 追加後 (0_fieldは自動採番(オートナンバー)field)
|
13
|
+
↓SQLserverのテーブル 追加後こうなってほしい (0_fieldは自動採番(オートナンバー)field)
|
15
14
|
```
|
16
15
|
0_field A_field B_field C_field D_field
|
17
16
|
All_No1 LCno1 名前1 電話1 メール1
|
8
見やすく
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,32 +3,27 @@
|
|
3
3
|
|
4
4
|
ローカルにあるmdfファイルのテーブルごと
|
5
5
|
違うPCのSQLserverのテーブルに追加したいです。。
|
6
|
-
例 テーブルはこうなってほしい
|
6
|
+
↓例 テーブルはこうなってほしい (追加したいmdfファイルのデータ)
|
7
|
-
|
7
|
+
```
|
8
8
|
ローカルmdfファイルのテーブル
|
9
9
|
A_field B_field C_field D_field
|
10
10
|
LCno1 名前1 電話1 メール1
|
11
11
|
LCno2 名前2 電話2 メール2
|
12
12
|
LCno3 名前3 電話3 メール3
|
13
|
-
|
14
|
-
|
13
|
+
```
|
15
|
-
|
16
|
-
SQLserverのテーブル
|
14
|
+
↓SQLserverのテーブル 追加後 (0_fieldは自動採番(オートナンバー)field)
|
15
|
+
```
|
17
16
|
0_field A_field B_field C_field D_field
|
18
17
|
All_No1 LCno1 名前1 電話1 メール1
|
19
18
|
All_No2 LCno2 名前2 電話2 メール2
|
20
19
|
All_No3 LCno3 名前3 電話3 メール3
|
21
|
-
|
22
|
-
0_field
|
23
|
-
は自動採番(オートナンバー)field
|
24
|
-
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
|
25
|
-
共有サーバーに更新したいのですが…
|
26
|
-
・1のパターン SQL文?一括??
|
27
|
-
・2のパターン それともinsert文を一行つつでなら
|
28
|
-
C#で書いて掛けそうですが… LINQも使える??
|
29
|
-
|
30
|
-
///1のパターンで考えた場合////(ごめんなさい2のパターンまで頭が回ってません。。。)
|
31
20
|
```
|
21
|
+
この様に共有サーバーに更新したいのですが…
|
22
|
+
2つ浮かびましたが…
|
23
|
+
・1のパターン SQL文で一括??
|
24
|
+
・2のパターン それともinsert文をC#で書いて一行つつでなら… (LINQも使える??)
|
25
|
+
↓ 1のパターンで考えた場合 (ごめんなさい2のパターンまで頭が回ってません。。。)
|
26
|
+
```
|
32
27
|
SQL接続文字 = @"Data Source=…"
|
33
28
|
|
34
29
|
INSERT文 ="INSERT INTO SQLserverのテーブル 名 (A_field,B_field,C_field,D_field)
|
@@ -42,6 +37,8 @@
|
|
42
37
|
→ちょっとちやってみます。
|
43
38
|
③プロバイダみたいなものが必要?
|
44
39
|
→[Provider=]or[Driver=]???mdf用の書き方がいまいち分からない
|
40
|
+
|
41
|
+
↓つくったINERT文をこれで
|
45
42
|
```
|
46
43
|
SQL接続.ExecuteNonQuery(INSERT文, SQL接続文字);
|
47
44
|
```
|
7
更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -25,27 +25,28 @@
|
|
25
25
|
共有サーバーに更新したいのですが…
|
26
26
|
・1のパターン SQL文?一括??
|
27
27
|
・2のパターン それともinsert文を一行つつでなら
|
28
|
-
C#で書いて掛けそうですが…
|
28
|
+
C#で書いて掛けそうですが… LINQも使える??
|
29
29
|
|
30
30
|
///1のパターンで考えた場合////(ごめんなさい2のパターンまで頭が回ってません。。。)
|
31
31
|
```
|
32
|
-
|
33
32
|
SQL接続文字 = @"Data Source=…"
|
34
33
|
|
35
34
|
INSERT文 ="INSERT INTO SQLserverのテーブル 名 (A_field,B_field,C_field,D_field)
|
36
|
-
|
35
|
+
SELECT * FROM [mdfデータベース名].テーブル名 WHERE 条件のあるフィールド = 何らか条件"
|
36
|
+
```
|
37
|
+
[mdfデータベース名]この部分
|
37
38
|
↓
|
38
39
|
①visual studioで追加してるから、mdfファイル名(サーバー名でだけいい?)
|
39
40
|
→やってみたが駄目だった。
|
40
|
-
②
|
41
|
+
②[フルパス + mdfデータベース名](.mdfまで書く?)
|
41
42
|
→ちょっとちやってみます。
|
42
43
|
③プロバイダみたいなものが必要?
|
44
|
+
→[Provider=]or[Driver=]???mdf用の書き方がいまいち分からない
|
43
|
-
|
45
|
+
```
|
44
|
-
|
45
46
|
SQL接続.ExecuteNonQuery(INSERT文, SQL接続文字);
|
46
|
-
|
47
|
+
```
|
47
48
|
↓SQL接続クラス
|
48
|
-
|
49
|
+
```
|
49
50
|
public class SQL接続
|
50
51
|
{
|
51
52
|
public static void ExecuteNonQuery(string sql, string 接続文字列)
|
6
意味が分かりやすくした。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
素人ですみません。
|
1
|
+
素人ですみません。(質問を2人の意見を聞いて再編集しました。)
|
2
|
-
|
2
|
+
素人なので変な風に理解してるかもしれません!よろしくお願いします。
|
3
3
|
|
4
4
|
ローカルにあるmdfファイルのテーブルごと
|
5
|
-
SQLserverのテーブルに追加したいです。。
|
5
|
+
違うPCのSQLserverのテーブルに追加したいです。。
|
6
|
-
|
6
|
+
例 テーブルはこうなってほしい
|
7
|
+
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
|
7
8
|
ローカルmdfファイルのテーブル
|
8
9
|
A_field B_field C_field D_field
|
9
10
|
LCno1 名前1 電話1 メール1
|
@@ -20,18 +21,62 @@
|
|
20
21
|
|
21
22
|
0_field
|
22
23
|
は自動採番(オートナンバー)field
|
23
|
-
|
24
|
+
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
|
24
25
|
共有サーバーに更新したいのですが…
|
26
|
+
・1のパターン SQL文?一括??
|
25
|
-
|
27
|
+
・2のパターン それともinsert文を一行つつでなら
|
26
|
-
C#で書いて掛けそうですが…
|
28
|
+
C#で書いて掛けそうですが…
|
27
|
-
SqlDataAdapterとか?
|
28
|
-
SqlConnectionでかな?
|
29
|
-
のやり方がいまいち分からないので…
|
30
29
|
|
31
|
-
追記
|
32
|
-
失礼しました。
|
33
|
-
|
30
|
+
///1のパターンで考えた場合////(ごめんなさい2のパターンまで頭が回ってません。。。)
|
34
|
-
|
31
|
+
```
|
35
32
|
|
33
|
+
SQL接続文字 = @"Data Source=…"
|
34
|
+
|
35
|
+
INSERT文 ="INSERT INTO SQLserverのテーブル 名 (A_field,B_field,C_field,D_field)
|
36
|
+
SELECT * FROM mdfデータベース名.テーブル名 WHERE 条件のあるフィールド = 何らか条件"
|
37
|
+
↓
|
38
|
+
①visual studioで追加してるから、mdfファイル名(サーバー名でだけいい?)
|
39
|
+
→やってみたが駄目だった。
|
36
|
-
|
40
|
+
②ここの部分がフルパスだけでいい?
|
41
|
+
→ちょっとちやってみます。
|
42
|
+
③プロバイダみたいなものが必要?
|
43
|
+
→???
|
44
|
+
|
45
|
+
SQL接続.ExecuteNonQuery(INSERT文, SQL接続文字);
|
46
|
+
|
47
|
+
↓SQL接続クラス
|
48
|
+
|
49
|
+
public class SQL接続
|
50
|
+
{
|
51
|
+
public static void ExecuteNonQuery(string sql, string 接続文字列)
|
52
|
+
{
|
53
|
+
using (SqlCommand command = new SqlCommand())
|
54
|
+
{
|
55
|
+
SqlConnection conn = new SqlConnection();
|
37
|
-
|
56
|
+
conn.ConnectionString = conn.ConnectionString = 接続文字列;
|
57
|
+
// トランザクションを開始します。
|
58
|
+
conn.Open();
|
59
|
+
SqlTransaction transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted);
|
60
|
+
try
|
61
|
+
{
|
62
|
+
command.CommandText = sql;
|
63
|
+
command.Connection = conn;
|
64
|
+
command.Transaction = transaction;
|
65
|
+
command.ExecuteNonQuery();
|
66
|
+
//トランザクションをコミットします。
|
67
|
+
transaction.Commit();
|
68
|
+
}
|
69
|
+
catch (System.Exception)
|
70
|
+
{
|
71
|
+
//トランザクションをロールバックします。
|
72
|
+
transaction.Rollback();
|
73
|
+
throw;
|
74
|
+
}
|
75
|
+
finally
|
76
|
+
{
|
77
|
+
conn.Close();
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
```
|
5
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,4 +26,12 @@
|
|
26
26
|
C#で書いて掛けそうですが…
|
27
27
|
SqlDataAdapterとか?
|
28
28
|
SqlConnectionでかな?
|
29
|
-
のやり方がいまいち分からないので…
|
29
|
+
のやり方がいまいち分からないので…
|
30
|
+
|
31
|
+
追記
|
32
|
+
失礼しました。
|
33
|
+
INSERT INTO SQLserverのテーブル 名 (A_field,B_field,C_field,D_field)
|
34
|
+
SELECT * FROM mdfファイルのテーブル名.[ココ?] WHERE 条件のあるフィールド = 何らか条件
|
35
|
+
|
36
|
+
だとは 思うのですが… 接続部分の書き方?
|
37
|
+
[ココ?]と 書いたところ 後は通常時のSQLサーバーのconnectionの書き方で良いのでしょうか?
|
4
付け加えました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
C#
|
1
|
+
C#とSQL文 ローカルにあるmdfファイルのテーブルごと SQLserverに追加したい
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
LCno2 名前2 電話2 メール2
|
11
11
|
LCno3 名前3 電話3 メール3
|
12
12
|
|
13
|
-
↓追加
|
13
|
+
↓追加後
|
14
14
|
|
15
15
|
SQLserverのテーブル
|
16
16
|
0_field A_field B_field C_field D_field
|
3
付け加えました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,4 +19,11 @@
|
|
19
19
|
All_No3 LCno3 名前3 電話3 メール3
|
20
20
|
|
21
21
|
0_field
|
22
|
-
は自動採番(オートナンバー)field
|
22
|
+
は自動採番(オートナンバー)field
|
23
|
+
|
24
|
+
共有サーバーに更新したいのですが…
|
25
|
+
SQL文?一括?? それとも insert文を一行つつでなら
|
26
|
+
C#で書いて掛けそうですが…
|
27
|
+
SqlDataAdapterとか?
|
28
|
+
SqlConnectionでかな?
|
29
|
+
のやり方がいまいち分からないので…
|
2
見やすくした
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,20 +5,18 @@
|
|
5
5
|
SQLserverのテーブルに追加したいです。。
|
6
6
|
|
7
7
|
ローカルmdfファイルのテーブル
|
8
|
-
-----------------------------------
|
9
8
|
A_field B_field C_field D_field
|
10
9
|
LCno1 名前1 電話1 メール1
|
11
10
|
LCno2 名前2 電話2 メール2
|
12
11
|
LCno3 名前3 電話3 メール3
|
13
|
-
|
12
|
+
|
14
13
|
↓追加
|
15
14
|
|
16
15
|
SQLserverのテーブル
|
17
|
-
-----------------------------------
|
18
|
-
↓オートナンバー
|
19
16
|
0_field A_field B_field C_field D_field
|
20
17
|
All_No1 LCno1 名前1 電話1 メール1
|
21
18
|
All_No2 LCno2 名前2 電話2 メール2
|
22
19
|
All_No3 LCno3 名前3 電話3 メール3
|
20
|
+
|
23
|
-
|
21
|
+
0_field
|
24
|
-
|
22
|
+
は自動採番(オートナンバー)field
|
1
見やすくした
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,17 +5,20 @@
|
|
5
5
|
SQLserverのテーブルに追加したいです。。
|
6
6
|
|
7
7
|
ローカルmdfファイルのテーブル
|
8
|
+
-----------------------------------
|
8
9
|
A_field B_field C_field D_field
|
9
|
-
LCno1
|
10
|
+
LCno1 名前1 電話1 メール1
|
10
|
-
LCno2
|
11
|
+
LCno2 名前2 電話2 メール2
|
11
|
-
LCno3
|
12
|
+
LCno3 名前3 電話3 メール3
|
13
|
+
-----------------------------------
|
14
|
+
↓追加
|
12
15
|
|
13
|
-
↓
|
14
16
|
SQLserverのテーブル
|
17
|
+
-----------------------------------
|
15
18
|
↓オートナンバー
|
16
19
|
0_field A_field B_field C_field D_field
|
17
|
-
All_No1 LCno1
|
20
|
+
All_No1 LCno1 名前1 電話1 メール1
|
18
|
-
All_No2 LCno2
|
21
|
+
All_No2 LCno2 名前2 電話2 メール2
|
19
|
-
All_No3 LCno3
|
22
|
+
All_No3 LCno3 名前3 電話3 メール3
|
20
|
-
|
23
|
+
-----------------------------------
|
21
24
|
このように一括してテーブルを更新する方法を教えてください。
|