将选定的下拉列表值传递给where子句

本文关键字:where 子句 值传 下拉列表 | 更新日期: 2023-09-27 18:13:43

我通过使用newext查询插入到表中,但我不知道语法是什么,用于告诉查询我需要插入哪里training_id = &dateSelected&,下面的查询通过使用一个静态值来测试(2)。

请帮助。

private void InsertInfo()
    {
        var dateSelected = dpDate.SelectedItem.Value;
        SqlConnection conn = new SqlConnection(GetConnectionString());
    string sql =    "INSERT INTO personTraining (name,training_id, training,trainingDate,trainingHour, trainingSession)SELECT @Val1,training_id,training,trainingDate,trainingHour,trainingSession FROM tbl_training WHERE  training_id = 2";

将选定的下拉列表值传递给where子句

使用参数如下:

private void InsertInfo()
{
  var dateSelected = dpDate.SelectedItem.Value;
  using(SqlConnection conn = new SqlConnection(GetConnectionString()))
  {
       conn.Open();
       SqlCommand command= conn.CreateCommand();
       command.CommandText=     "INSERT INTO personTraining (name,training_id, training,trainingDate,trainingHour, trainingSession)SELECT @Val1,training_id,training,trainingDate,trainingHour,trainingSession FROM tbl_training WHERE  training_id = @trainingID";
      command.Parameters.AddWithValue("@trainingID",dateSelected);
      command.ExecuteNonQuery();
}

但是,在查询中有另一个@Val1参数;我不知道这是从哪来的

下面是一个基本的例子。我不知道您是如何执行string sql的,所以我将使用基于SqlCommand的示例。

SQL:

INSERT INTO personTraining 
(name,training_id, training,trainingDate,trainingHour, trainingSession)
SELECT @Val1,training_id,training,trainingDate,trainingHour,trainingSession
FROM tbl_training 
WHERE training_id = @training_id;
c#:

SqlCommand cmd = conn.CreateCommand();
cmd.Parameters.AddWithValue("training_id", dateSelected);

在SqlCommand对象中添加另一个Parameter对象,并将Parameter的值设置为所选日期