テーブルに 'molasses_analysis'という名前の列が98あり、私のC#デスクトップアプリケーションを使ってレコードを挿入する必要があります。
サンプルコードは以下の通りです。C#のテーブルに複数の値を挿入する
string insert_sql = @"insert into molasses_analysis(mo_entry_date, mo_entry_time, mo_code, mo_brix, mo_pol, mo_purity, mo_crtd_by) " +
" values(@entry_date, @entry_time, @mol_code, @brix, @pol, @purity, @crtd_by)";
try
{
List<SqlParameter> param = new List<SqlParameter>();
param.Add(new SqlParameter("@entry_date", entry_date));
param.Add(new SqlParameter("@entry_time", entry_time));
param.Add(new SqlParameter("@mol_code", mol_code));
param.Add(new SqlParameter("@brix", brix));
param.Add(new SqlParameter("@pol", pol));
param.Add(new SqlParameter("@purity", purity));
param.Add(new SqlParameter("@crtd_by", crtd_by));
int inserted_rows = SqlHelper.ExecuteNonQuery(dbConn.sqlConn(),CommandType.Text, insert_sql, param.ToArray());
}
catch (Exception ex)
{
MessageBox.Show("Data not saved!\nError message - "+ex.Message, "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
は、ここで私はちょうど7フィールド/列のみ使用されるが、98個の列のようなコードを書いて、列ごとにSQLのパラメータを割り当てるために、非常に多忙と苦痛になります。 私の質問は、C#コードを使用して複数の列を挿入するクリーナーと良いコードはありますか?
そうではありません。列とその値のリストを持たせることで、全体を動的にすることができますが、やはり同様のものとして実行する必要があります。 –
いいえAFAIKがありません。 EntityFrameworkまたは同様のライブラリを調べる必要があります。あなたのためにすべてのものを管理することによって、あなたに多くの時間を節約します。 – stybl
あなたが行うことができる「最良の」方法は、値を追加するために必要な列やディクショナリを持つことで、SQL文を動的に構築し、必要な値を持つ類似のリスト(または同じ辞書/リスト)これらの列に配置するには、このすべてのループを使用して、適切なSQLを連結してすべてのパラメータを追加します。 –