No.1ベストアンサー
- 回答日時:
確認ですが、
・使っているデータベースは何ですか?
(SQL Server or Oracle or Access or その他?)
・DBの接続方法には、何を使ってますか?
(SqlClient? OleDb?)
・コピー元のDataSetは、型付DataSet?型無しDataSet?
・C# + ASP.NET でという話で宜しいでしょうか?
(ASP.NETで質問されていますが、質問内容みると、C#という
分類での質問になり、ASP.NETではないような気がします)
少々情報が足りないので、回答が的外れになるかもしれませんが、
どのDB&接続方法にしても、名前空間とクラス名が違うだけで
基本ロジック自体は、ほぼ一緒のため、
下記、型付きDataSetで、SQL Serverの例で、サンプル記載しておきます。
もし、SQL Serverじゃない&型無しDataSetの場合だったり、
どう応用したらいいかわからないという場合は、また質問して下さい。
#############################################################
// コピー元のDataTableを取得
DataTable d = コピー元DataTableを取得;
// データベースの接続
//(本来であれば、web.configやapp.configに設定されている接続先を取得する方法が望ましいわけで...)
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DB名;Data Source=DBサーバのIPアドレス");
conn.Open();
// コピー元のデータ数分だけループ
foreach (DataRow row in d.Rows)
{
// INSERT用SQLを生成
System.Text.StringBuilder sql = new System.Text.StringBuilder();
sql.Append("INSERT INTO [コピー先のスキーマ].[コピー先テーブル名] ");
// INSERT項目
System.Text.StringBuilder insertColumns = new System.Text.StringBuilder();
// INSERT値
System.Text.StringBuilder valueColumns = new System.Text.StringBuilder();
// DataTableの列数分だけループ
foreach (DataColumn col in d.Columns)
{
insertColumns.AppendFormat("{0},", col.ColumnName);
// 列の型が文字列型の場合
if (col.DataType == typeof(String))
{
valueColumns.AppendFormat("'{0}',", row[col.ColumnName].ToString());
}
else
{
// 列の型が文字列型以外の場合
valueColumns.AppendFormat("{0},", row[col.ColumnName].ToString());
}
}
// 不要な「,」を削除
insertColumns.Remove(insertColumns.Length - 1, 1);
valueColumns.Remove(valueColumns.Length - 1, 1);
// INSERT用SQL文の生成
sql.AppendFormat("({0}) VALUES ({1})", insertColumns.ToString(), valueColumns.ToString());
// SQLの実行
System.Data.OleDb.OleDbCommand command;
command = new System.Data.OleDb.OleDbCommand(sql.ToString(), conn);
command.ExecuteNonQuery();
command.Dispose();
command = null;
}
// DBの接続を閉じる
conn.Close();
conn.Dispose();
conn = null;
結局SQLのINSERT文で一気にデータを送りました。
長いソースを書いて説明して頂き、今後の参考にしたいと思います。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL mysqlで INSERT と SELECTの用途は 1 2022/04/01 00:45
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- PHP php エラー 2 2022/10/23 16:43
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
【お題】 ・急に朝起こしてきた母親に言われた一言とは?
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
-
4
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
5
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
6
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
7
MDBテーブルへの追加変更を教えてください
Visual Basic(VBA)
-
8
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
9
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
10
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
11
DataTableから条件を満たした行を別のDatatableへコピーしたい
その他(プログラミング・Web制作)
-
12
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
13
DataGridの中身をDataSetにテーブルとして保存する方法 (初心者)
Visual Basic(VBA)
-
14
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
15
C# DataTableに最後に追加した行をDataGridView上で選択状態にする方法は?
C言語・C++・C#
-
16
VB.net
Visual Basic(VBA)
-
17
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
18
C# dataGridViewの値だけクリア
C言語・C++・C#
-
19
EXISTSを使ったDELETE文
SQL Server
-
20
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一行おきに貼り付ける 可能でし...
-
Access VBAから使用したExcelプ...
-
DataTableに入っているデータを...
-
C++言語で、構造体のコピーは可...
-
Ctrl + Cなど複数の入力キー...
-
マウントしたディスクにcpで、...
-
ブラウザからコピペすると文字...
-
Eclipseのコード入力時の、行コ...
-
シートに張り付けたボタンがシ...
-
Listviewに表示された文字のコ...
-
Delphi6 ShowMessage のタイトル
-
VB.NET ピクチャーボックスのIm...
-
Excelでコピーしたセル(テキス...
-
Activesheet.Pasteで困っています
-
【UWSC】WEBページ内コピーした...
-
文字列の切り出し
-
二分木のコピー
-
バッチで当日日付で作成される...
-
コマンド・プロンプトの黒い画...
-
CSVファイルの特定行の削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C++言語で、構造体のコピーは可...
-
Access VBAから使用したExcelプ...
-
一行おきに貼り付ける 可能でし...
-
DataTableに入っているデータを...
-
Ctrl + Cなど複数の入力キー...
-
マウントしたディスクにcpで、...
-
Eclipseのコード入力時の、行コ...
-
Listviewに表示された文字のコ...
-
文字列の切り出し
-
Activesheet.Pasteで困っています
-
エクセルVBA 実行時エラー'...
-
【UWSC】WEBページ内コピーした...
-
arduino unoからデータを読み出...
-
他プロジェクトのFormを自プロ...
-
シートに張り付けたボタンがシ...
-
Excelでコピーしたセル(テキス...
-
ブラウザからコピペすると文字...
-
Eclipseでコピーするとき行数な...
-
プログラム終了時にエラーが発...
-
ROBOCOPYをスペース付きのフォ...
おすすめ情報