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

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

新規登録して質問してみよう
ただいま回答率
85.50%
DataSet

DataSetは、ADO.NETアーキテクチャのコンポーネントです。データベースから取得したレコードをメモリ領域に格納するクラスを指します。データの保持やテーブル間のリレーション・制約といった保持も可能です。

C#

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

.NET Framework 3.5

.NET Framework-3.5は、NET Framework 2.0にアセンブリを追加(3.0も含む)したものをベースにしています。

Q&A

解決済

1回答

4941閲覧

datatableの値を取得

DENQ

総合スコア19

DataSet

DataSetは、ADO.NETアーキテクチャのコンポーネントです。データベースから取得したレコードをメモリ領域に格納するクラスを指します。データの保持やテーブル間のリレーション・制約といった保持も可能です。

C#

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

.NET Framework 3.5

.NET Framework-3.5は、NET Framework 2.0にアセンブリを追加(3.0も含む)したものをベースにしています。

0グッド

0クリップ

投稿2016/10/07 07:17

編集2016/10/07 08:02

###前提・実現したいこと
お世話になっております。
dataTableに格納した値をsql文で取得し結果を
同じdataset内にあるdatatableに格納したいのですが、
できるのでしょうか?

ググり方がわからなかったので、こちらに質問しました。
以上、よろしくお願いします。

追記:

  1. DBから値を取得
  2. dataTableに取得した値を格納

dataTable構成
Table名 Table1
カラム構成
ID int
DATE DateTime
TOUROKU_NO int
CD1 int
CD2 int
CD3 int
CD4 int
CD5 int
CD6 int

3. 上記のdataTableにselect

SELECT *, ROW_NUMBER() OVER (PARTITION BY BB3.[ID], BB3.[DATE], BB3.[TOUROKU_NO ] ORDER BY BB3.[END_DATE]) AS [RN] FROM ( SELECT BB1.*, CASE WHEN BB2.[DATE] is NULL THEN GETDATE() ELSE BB2.[DATE] END AS [END_DATE] FROM Table1 AS BB1 LEFT JOIN Table1 AS BB2 ON (BB1.[ID] = BB2.[ID] AND BB1.[TOUROKU_NO ] = BB2.[TOUROKU_NO ] AND BB1.[DATE] < BB2.[DATE]) ) AS BB3

このsqlを作成したtable1に対してやりたいのですが、方法がわからず困ってます。
table.Selectなのか、LINQを使うのか。。。
また、このsql文の結果を別のtableに格納したいと思っております。
この辺りの理解が浅いので、ご教授よろしくお願いします。

###補足情報(言語/FW/ツール等のバージョンなど)
c#
.net framework 3.5

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2016/10/07 07:29

sql 文ととは何を意味しているのですか? 何にせよ、ある DataTable から、ある条件でデータを取得し、別の DataTable を作るのは、要件次第ですが、基本的に可能です。なのであなたの要件をもっと詳しく書きましょう。
guest

回答1

0

ベストアンサー

一度、ローカルのDataTableに格納した値をSQL構文を使って別のDataTableに格納したいということでいいでしょうか?
結論から言いますと、基本的に不可能です。

ですので、一般的にはSQL風な機能が備わっているLINQという機能を使います。
LINQ

しかし、SQL,SQLite,Oracleといったデータベースを使う場合はSQL構文を使った操作ができます。
こんな風に

投稿2016/10/07 07:57

ishi9

総合スコア1294

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

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

DENQ

2016/10/07 08:07

できない物なんですね。 LINQで追記したようなsqlのセレクト文を書くことは可能でしょうか?
ishi9

2016/10/07 08:24

linqにover句はないのでそのままというわけにはいきませんが、 linqは非常に柔軟な機能なので全く同じ結果を返すようにはできます。 しかし、そこまで複雑なsql文になるとちょっと私の方でサンプルを用意するのは難しいです。
DENQ

2016/10/07 08:37

そうなんですね。 linqを使った事がないのでちょっと私もわからないです。 調べてみます。 ありがとうございます。
ishi9

2016/10/07 08:49

厳密に言うとちょっと違う箇所もあるんですが、 SQLとLINQ文を置き換える上で役に立つサイトです。 http://blog.karamem0.jp/entry/2012/12/15/000000 ※質問者様がこれからやろうとしているのは「Linq to Object」 ここで紹介しているのは「Linq to Entity」です。 でも今はそんな細かいところが問題になることはないと思うので気にせず 参考にしてみてください。
DENQ

2016/10/19 04:19

解決には至ってませんがlinqを使って何とかやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問