【发布时间】:2019-07-06 11:07:37
【问题描述】:
我是 ASP.NET MVC 和 Sql Server 的新手 尝试插入表 1 第二步以从表 1 列 y 更新表 2 列 x。 更新整个列时的问题 x
我的桌子: 表车 (车牌号 汽车模型 颜色 车牌 汽车里程表)
表 JobInfo (作业编号 作业编号 日期 起始位置 目的地 开始里程表 里程表 停车处 车牌号 用户ID)
UPDATE Car SET CarOdometer = (SELECT TOP 1 EndOdometer FROM JobInfo WHERE CarId = Car.CarId ORDER BY EndOdometer DESC)
Update Car set Car.CarOdometer = JobInfo.EndOdometer from JobInfo where JobInfo.carId=( SELECT IDENT_CURRENT(JobInfo.CarId));
试图使用内部连接但不起作用
string query1 = "INSERT INTO JobInfo (JobNum,Date,StartLocation,Destination,EndOdometer,Parking,CarId,StartOdometer)" +
"VALUES(@JobNum,@Date,@StartLocation,@Destination,@EndOdometer,@Parking,@CarId,@StartOdometer)";
string query2 = "Update Car SET Car.CarOdometer = (Select top 1 JobInfo.EndOdometer FROM JobInfo INNER JOIN Car ON JobInfo.CarId = Car.CarId "+
"ORDER BY JobInfo.EndOdometer desc) WHERE Car.CarId = Car.CarId";
sqlCon.Open();
var sqlCmd1 = new SqlCommand(query1, sqlCon);
var sqlCmd2 = new SqlCommand(query2, sqlCon);
sqlCmd1.Parameters.AddWithValue("@JobNum", jobModel.JobNum);
sqlCmd1.Parameters.AddWithValue("@Date", jobModel.Date.ToString());
sqlCmd1.Parameters.AddWithValue("@StartLocation", jobModel.StartLocation);
sqlCmd1.Parameters.AddWithValue("@Destination", jobModel.Destination);
sqlCmd1.Parameters.AddWithValue("@EndOdometer", jobModel.EndOdometer);
sqlCmd1.Parameters.AddWithValue("@Parking", Convert.ToDecimal(jobModel.Parking));
sqlCmd1.Parameters.AddWithValue("@CarId", Convert.ToInt32(jobModel.CarId));
sqlCmd1.Parameters.AddWithValue("@StartOdometer", Convert.ToInt32(jobModel.StartOdometer));
//Updating CarOdometer from EndOdometer
sqlCmd2.Parameters.AddWithValue("@CarOdometer", Convert.ToInt32(jobModel.CarOdometer));
sqlCmd1.ExecuteNonQuery();
sqlCmd2.ExecuteNonQuery();
仅更新 CarId=1 中的 CarOdometer 或依赖于 CarId 的 CarOdometer 将被使用应该更改而不是所有记录
感谢您的宝贵时间
【问题讨论】:
标签: c# sql-server asp.net-mvc