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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

4回答

13053閲覧

C#でCSVファイルをインサートしたいです

toka1111

総合スコア8

C#

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

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2016/10/17 06:20

###実現したいこと
C#を用いてsqlserverにBULK insertをし,CSV形式のファイルの中身をinsertするプログラムを作成しています。
sqlserverでの実行に際しては問題なく行が追加されたのですが,C#で実行させようとするとうまく入ってくれません。
C#でのinsertの書き方と一緒ではない別の書き方があるのでしょうか?教えていただきたいです。

###発生している問題

insertが実行されない

###該当のソースコード

C#

1 private void Form_Load(object sender, EventArgs e) 2 { 3 cn.ConnectionString = cnstr; 4 cn.Open(); 5 6 cmd.Connection = cn; 7 cmd.CommandType = CommandType.Text; 8 cmd.CommandText = "BULK INSERT [dbo].[zz] " + 9 "FROM 'C:\test.txt' " + 10 "WITH" + 11 "(" + 12 "FIELDTERMINATOR = ','," + 13 "ROWTERMINATOR = '\n'" + 14 ")"; 15 cn.close(); 16 }

###試したこと
改行をしてみましたが,改善はしませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
言語 C#
開発環境 windows7 professional 64bit・microsoft visualstdio2015 express ・ microsoft sqlserver 2016 express

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

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

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

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

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

guest

回答4

0

自己解決

PCの設定が間違っていたようです。ご迷惑をおかけしました。

投稿2016/10/18 00:29

toka1111

総合スコア8

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

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

0

現在実行できる環境がないので予想での回答になりますが、

csharp

1cmd.CommandText = "BULK INSERT [dbo].[zz] " + 2 "FROM 'C:\test.txt' " + 3 "WITH" + 4 "(" + 5 "FIELDTERMINATOR = ','," + 6 "ROWTERMINATOR = '\n'" + 7 ")";

こちらでコマンド指定してますが、
C:\test.txt ではなく C:\test.txt ではないでしょうか?

投稿2016/10/17 07:06

MMashiro

総合スコア2378

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

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

toka1111

2016/10/17 07:18

回答ありがとうございます。 試してみましたが実行はされていなかったので別の要因のようです・・・
MMashiro

2016/10/17 07:59 編集

すいません、それより前の段階の話になるのですが 提示されたコードには無かったのですがコマンドの実行は行われてますでしょうか? cmd.ExecuteNonQuery();
guest

0

SqlBulkCopy クラスを利用してはいかがですか?

SqlBulkCopy クラス
https://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlbulkcopy(v=vs.100).aspx

投稿2016/10/17 07:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

toka1111

2016/10/17 07:18

回答ありがとうございます。 こちらの方法でも試してみたいと思います。
guest

0

直接の回答ではありませんが、以下の方法でcsvをBULK INSERTできます。
CSV ファイルを BULK INSERT を使ってインポートする

投稿2016/10/17 06:31

Orlofsky

総合スコア16415

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

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

toka1111

2016/10/17 06:50

回答ありがとうございます。 BULK INSERT自体は同じ書き方でSQLSERVERのほうでうまくいっているのですが C#上での書き方は別になるのでしょうか?
Orlofsky

2016/10/17 07:03

SQL SeverはCSVをBULK INSERTできる機能があるので上記のコメントをしました。 C# は詳しくないので他の人のコメントを待ちましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問