
お世話になります。C#とSQL serverの学習をしています。
C#のフォームアプリケーションから、ボタンを押したら
SQL serverへ接続し、デスクトップに保存してある
CSVファイルの中身を作成済みのテーブルに登録したいと考えています。
現在、実現したいこととして、
CSVファイルのファイルパスを指定し、データを読み込み、
その対象のデータをINSERT文でSQL serverへ登録したいのですが、
そのやり方が分からず困っています。
下記に途中段階のコードを記載します。
このコードを実行すると、「ユーザーはログインできませんでした。」
というエラーメッセージが出ます。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.Sql; using System.IO; namespace DB_ { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //---------------------------------------------------------------------------------------------------------- private void button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = @"Data Source=DESKTOP-U6R2QM8\SQLEXPRESS;Initial Catalog=マスタ機能;"; try { conn.Open(); SqlCommand command = conn.CreateCommand(); SqlTransaction transaction = conn.BeginTransaction(); command.Connection = conn; command.Transaction = transaction; try { StreamReader sr = new StreamReader(@"C:\Users\yuhor\OneDrive\デスクトップ\拠点.csv"); sr.ReadLine(); while (sr.Peek() > -1) { string line = sr.ReadLine(); command.CommandType = CommandType.StoredProcedure; command.CommandText = "Insert into 拠点 (コード, 拠点)"; command.ExecuteNonQuery(); } transaction.Commit(); sr.Close(); } catch { transaction.Rollback(); } } catch(Exception ex) { MessageBox.Show(ex.Message, "データベース接続エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { conn.Close(); } } } }
いくつかのサイトを真似して記述しました。
めちゃくちゃな記述になっているかもしれません。申し訳ございません。
CSVファイルの中身↓
1,東京,
2,大阪,
SQL server上で作成したテーブル↓
| コード | 拠点 | |
|---|---|---|
※Visual Basic 2015
SQL serverは最新のものを使用しています。
至らない点も多いかと思いますが、宜しくお願い致します。

INSERT するためのコードはほとんど何もできてないようですけど? 質問のコードを実行すると結果はどうなるんですか?
一旦プログラムのことは忘れてSQLのINSERT文についてのみ調査されることをお勧めします。
その際、SQL Server Management Studioにて直接SQLを実行してテストを行い、実行すべきSQLを確認された後、プログラムで実行すべきことを実装してください。
SurferOnWwwさん
申し訳ありません。勉強不足です。接続をしただけで、まだ何もできていない状態です。
INSERT文について調べてみます。
コメントありがとうございました。
YAmaGnZさん
確かにSQLについてまだまだ理解できていませんでした。
ますはSQLのほうで確認してみます。
コメントありがとうございました。
まずは1件のデータをINSERTしてみましょう。
そのSQLが分かれば、プログラムで実装すべきSQL文が分かると思います。
プログラムで実装するときは、「パラメータクエリ」についても調査されるとなお良いかと思います。
YAmaGNZさん
ありがとうございます。
「パラメータクエリ」は初めて聞いたので調べてみます。

回答1件
あなたの回答
tips
プレビュー

