如何获得多个动态行值进入数据库使用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();
}
我使用这个代码,但它只采取单一值,但我想保存多个值到数据库中。我怎样才能做到这一点呢?
如果您需要多个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();
}