私はこれが尋ねられたと確信しています。しかし、正確なコンテキストを見つけることができません。これは初心者ですか、それとも賢明でないアプローチですか?または、これは許容できるアプローチですか。
私が取り組んでいるプロジェクトがあります。私はこれらの4つのテーブルを持っています:
- お客様
- 住所
- サイト
- ログイン
したがって、データベースは基本的なものであり、あまりにもクレイジーなものではありません。
Restful Service
しかし、クライアントをサーバーにリンクするためにを作成しました。Crud操作を実行するには、単純なが必要ですInsert Command
。
好き:
string sqlInsertStr = "INSERT INTO Customer (First, Last, Phone, Email)
VALUES (@first, @last, @phone, @email)";
これで、4つのテーブルのうちの1つを処理できます。私の考えは、次の2つのアプローチのいずれかでした。
- を使用し
Generic
て、個々のクエリを保存します。次に、ループして各クエリを繰り返します。 - 反復する
Generic
一連のを含むを使用します。Stored Procedures
私の目標はstrings
、データベースを繰り返し処理してデータベースに書き込むために、いくつかを回避することです。
私の推論は、クライアントが個々のフィールドまたはプロファイル全体を変更するときでした。すべてのテーブルを一致して処理します。SQL
複数のテーブルにデータを挿入しようとすると、制限があることを私は知っています。
それは悪いアプローチですか。これはかなり小さくて単純です。だから私は夢中になるつもりはありません。しかし、それは学校のためです。だから私は私が有効な解決策を考え出しているかどうかを理解しようとしています、そして私がそうであればそれは正しい解決策と見なされますか?
問題と説明に関するどんな入力も素晴らしいでしょう。
アップデート:
ご迷惑をおかけしましたことをお詫び申し上げます。はい、1つのオブジェクトモデルがあります。これには、各テーブルの各列のすべての情報が含まれています。私の質問はこれです:
SQL
Inserting
複数のテーブルにまたがるのは好きではありません。したがって、これは1つのテーブルで問題なく機能します。
using (connection)
{
string sqlInsertStr = "INSERT INTO Customer (First, Last, Phone, Email)
VALUES (@first, @last, @phone, @email)";
connection = new SqlConnection(connectionStr);
command = new SqlCommand();
command.Connection = connection;
command.Connection.Open();
command.CommandText = sqlInsertStr;
SqlParameter firstParam = new SqlParameter(@"first", cust.First);
SqlParameter lastParam = new SqlParameter(@"last", cust.Last);
SqlParameter phoneParam = new SqlParameter(@"phone", cust.Phone);
SqlParameter emailParam = new SqlParameter(@"email", cust.Email);
command.Parameters.AddRange(new SqlParameter[]
{ firstParam, lastParam, phoneParam, emailParam});
command.ExecuteNonQuery();
command.Connection.Close();
}
これにより、1つのテーブルに簡単に書き込むことができます。しかし、それらの他のテーブルに挿入する必要がある他のすべてのデータはどうですか?sqlInsertStr
テーブルごとにを作成する必要がありますか?または、私は単にこのようなことをすることができませんでした:
using(connection)
{
list<string> sqlInsertStr = new list<string>();
sqlInsertStr.Add("INSERT INTO Customer (First, Last, Phone, Email)
VALUES (@first, @last, @phone, @email)"l
sqlInsertStr.Add("INSERT INTO Address (Street, City, State, Zip, Country)
VALUES (@Street, @City, @State, @Zip, @Country)";
connection = new SqlConnection(connectionStr);
command = new SqlCommand();
command.Connection = connection;
command.CommandText = sqlInsertStr;
// Repeat with Parameters and etc.
}
したがって、基本的にaを使用するGeneric
かStringBuilder
、適切なデータを使用してこれらすべての挿入を処理するために1つの文字列を含めることを許可しませんか?それとも私は完全に自分自身を考えすぎ/混乱させていますか?私はまだ学んでいるので、説明は素晴らしいでしょう。