私は、ユーザー入力に基づいて特定の値をデータベースに挿入しようとしているところで、次のコードを表示しています。私はユーザーの入力を検証する必要があるので、挿入のためにSQLコマンドを使用します。SQL commnadのcmdパラメータ内でサブクエリを使用するにはどうすればよいですか?
私は新たなんだ:
が問題.....私は、SQLアダプタを使用して、これを実行することができますが、それdoesntのは、私は、ユーザー入力のための検証の多くを作成する必要があるため効率的な方法であるように見えますこのC#には、cmdパラメータでサブクエリを使用する方法がわかりません。誰も私に以下のコードを動作させる方法を教えてもらえますか?
if (MessageBox.Show("Do you really want to Insert these values?", "Confirm Insert", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
SqlCommand cmd = new SqlCommand(@"Insert INTO " + schemaName + "[TableLogic] (Logic_Formula,Logic_InputsCount,Logic_Inputs,Logic_ConvFactorID) VALUES (@formula, @inputscount, @inputs, @conversionfac)", con);
cmd.Parameters.Add("@formula", SqlDbType.NVarChar, 160).Value = textBox_Formula.Text;
cmd.Parameters.Add("@inputscount", SqlDbType.Int).Value = numeric_inputscount.Text;
cmd.Parameters.Add("@inputs", SqlDbType.NVarChar, 160).Value = textBox_Inputs.Text;
cmd.Parameters.Add("@conversionfac", SqlDbType.Int).Value = "(Select ConversionFactorID FROM " + schemaName + "[ConversionFactors] WHERE [conversionFactor_CF] =" + comboBox_ConfacValue.Text + " AND [ConversionFactor_Desc] = '" + combobox_conversionDescription.Text + "')";
int rows = cmd.ExecuteNonQuery();
MessageBox.Show("New Rule is Inserted Successfully.");
}
SQL Serverの場合、ストアドプロシージャを使用してください! –
ADO.NETとC#の使い方をよく見てください。そこに記事を投稿する方法や、例を続ける方法がたくさんあります。照会方法の基本を理解したら、クラス内に 'conversionfac'の値を取得して' @ conversionfac'パラメータの値として設定できる新しいメソッドを記述してください。 IE。問題を小さな部分に分割してください。 – Igor
@Igor私はあなたのコメントに同意します...私は "@conversionfac"の値を取得し、コードでそれを使用するSQLコマンドを作成することができます...私は唯一の方法であることを探求するwnatですか?その問題を解消して、コードの行を増やしてください。 –