如何获得多个动态行值进入数据库使用asp.net mvc

本文关键字:数据库 asp mvc net 何获得 动态 | 更新日期: 2023-09-27 18:01:41

public void create(account_detail c, int jobcard_id)
{
    SqlConnection con = new SqlConnection(@"Data source =(LocalDB)'v11.0;AttachDbFilename=C:'Users'Wattabyte Inc'Documents'CarInfo.mdf;Integrated Security=True;");
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.Text;
    cmd.Connection = con;
    con.Open();
    string additionalText = string.Empty;
    bool needComma = false;
    foreach (var details in c.Data)
    {
        if (needComma)
        {
            additionalText += ", ";
        }
        else
        {
            needComma = true;
            additionalText += "('" + jobcard_id + "','" + details.completed_by + "','" + details.reporting_time + "','" + details.cost_activity + "','" + details.spared_part_used + "')";
        }
        cmd.CommandText = "insert into child_detail values " + additionalText + ";";
        cmd.ExecuteNonQuery();
    }

我使用这个代码,但它只采取单一值,但我想保存多个值到数据库中。我怎样才能做到这一点呢?

如何获得多个动态行值进入数据库使用asp.net mvc

如果您需要多个jobcard_id,那么就这样做。注意这是为了使它适合你的代码,我建议你做一些重构,找出一个更好的方法来做这件事,因为它只是很丑。

public void create(account_detail c, List<int> jobcard_ids)
        {
            SqlConnection con = new SqlConnection(@"Data source =(LocalDB)'v11.0;AttachDbFilename=C:'Users'Wattabyte Inc'Documents'CarInfo.mdf;Integrated Security=True;");
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = con;
            con.Open();
           string additionalText = string.Empty;
             bool needComma = false;
             foreach (var details in c.Data)
              {
                 if (needComma)
                 {
                      additionalText += ", ";
                 }
                      else
                 {
                     needComma = true;
                  foreach(var jobcard_id in jobcard_ids)
                  {
                     additionalText += "('" + jobcard_id + "','" + details.completed_by + "','" + details.reporting_time + "','" + details.cost_activity + "','" + details.spared_part_used + "')";
                     if (jobcard_id != jobcard_ids.Last())
                     {
                         // We will need to comma separate the query string unless it's the last item
                         additionalText+= ","; 
                     }
                  }
                }
                 cmd.CommandText = "insert into child_detail values " + additionalText + ";";
                 cmd.ExecuteNonQuery();
              }