Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC中同时将数据写入两个表时遇到问题_C#_Mysql_Model View Controller - Fatal编程技术网

C# 在MVC中同时将数据写入两个表时遇到问题

C# 在MVC中同时将数据写入两个表时遇到问题,c#,mysql,model-view-controller,C#,Mysql,Model View Controller,我正在处理一个MVC问题,用户将数据输入表单,表单将存储在sql数据库中。数据库已经存在,有很多表,并与我的asp.net连接。 我希望输入的数据能保存到正确的表格和行中。下面是我对代码的尝试。数据是微不足道的 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using My_App.Models; namespace My_Ap

我正在处理一个MVC问题,用户将数据输入表单,表单将存储在sql数据库中。数据库已经存在,有很多表,并与我的asp.net连接。 我希望输入的数据能保存到正确的表格和行中。下面是我对代码的尝试。数据是微不足道的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using My_App.Models;

namespace My_App.Controllers
{
    public class RegistrationController : Controller
    {
        public ActionResult Registration()
        {
            Database1 db = new Database1();

            List<User> list = db.User.ToList();
            ViewBag.UserList = new SelectList(list, "id_car", "id_user", "name_user");

            return View();
        }

        [HttpPost]
        public ActionResult Registration(Car model)
        {
            try
            {
               Database1 db = new Database1();

            List<User> list = db.User.ToList();
            ViewBag.UserList = new SelectList(list, "id_car", "id_user", "name_user");

                Car cars = new Car();
cars.id_car = model.id_car;
cars.id_city = model.id_city;
cars.car_name = model.car_name;
db.Car.Add(cars);
db.SaveChanges;

      User users = new User();
users.id_car = model.id_car;
users.id_user = model.id_user;
users.name_user = model.name_user;
db.User.Add(users);
db.SaveChanges;
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return View(model);
        }

    }
}

当我只为Car编写控制器时,它工作(数据被签名到我的SQL表中),但当我只为用户编写控制器时,它不工作(我将模型更改为用户) 我也尝试了MultipleClass..也不起作用。我不能掌握问题的情况和错误发生的地方。我希望数据同时写入两个表中。 谢谢你的时间和有用的建议。致以最良好的祝愿

谢谢 这是一篇很棒的文章:)它解释了很多

我已将代码更改为

控制器

 @model IEnumerable<My_app.Models.MyClass>
            @using (Html.BeginForm("Registration", "Registration", FormMethod.Post))
        {   
         @Html.AntiForgeryToken()

                     @Html.ValidationSummary(true)
        <div class="form-horizontal">


            @Html.ValidationSummary(true)

                 @foreach (var item in Model)
            {

                <div class="form-group">
                @Html.LabelFor(modelItem => item.id_car , new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.id_car )
                    @Html.ValidationMessageFor(modelItem => item.id_car )
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(modelItem => item.car_name , new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.car_name )
                    @Html.ValidationMessageFor(modelItem => item.car_name )
                </div>
            </div>


            <div class="form-group">
                @Html.LabelFor(modelItem => item.name_user, new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.name_user)
                    @Html.ValidationMessageFor(modelItem => item.name_user)
                </div>
            </div>
    }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
使用My_应用程序模型;
名称空间My_App.Controllers
{
公共类注册控制器:控制器
{
[HttpPost]
公众行动结果登记()
{
Database1 db=新的Database1();
List MyClassList=新列表();
变量详细信息=(从数据库中的c开始)
加入db。c.id\u车上的用户等于u.id\u车
选择新的{c.id\u car,c.id\u city,c.car\u name,u.id\u user,u.name\u user});
foreach(详细的var项目)
{
MyClass mC=新的MyClass();
mC.id_车=item.id_车;
mC.id_city=item.id_city;
mC.car\u name=item.car\u name;
mC.id_user=item.id_user;
mC.name\u user=item.name\u user;
MyClassList.Add(mC);MyClassList.Add(mC);
}
返回视图(MyClassList);
}
看法

@model IEnumerable
@使用(Html.BeginForm(“注册”,“注册”,FormMethod.Post))
{   
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.ValidationSummary(true)
@foreach(模型中的var项目)
{
@LabelFor(modeleItem=>item.id_car,新的{@class=“controllabel col-md-2”})
@EditorFor(modeleItem=>item.id\u car)
@Html.ValidationMessageFor(modelItem=>item.id\u car)
@LabelFor(modeleItem=>item.car_name,新的{@class=“control label col-md-2”})
@EditorFor(modeleItem=>item.car\u name)
@Html.ValidationMessageFor(modelItem=>item.car\u name)
@LabelFor(modeleItem=>item.name_用户,新的{@class=“controllabel col-md-2”})
@EditorFor(modeleItem=>item.name\u用户)
@Html.ValidationMessageFor(modelItem=>item.name\u用户)
}
我现在需要了解如何将MYClass中的输入数据发布并保存到一个表中(汽车和用户)。我想问题隐藏在控制器中并与连接。添加?

谢谢 这是一篇很棒的文章:)它解释了很多

我已将代码更改为

控制器

 @model IEnumerable<My_app.Models.MyClass>
            @using (Html.BeginForm("Registration", "Registration", FormMethod.Post))
        {   
         @Html.AntiForgeryToken()

                     @Html.ValidationSummary(true)
        <div class="form-horizontal">


            @Html.ValidationSummary(true)

                 @foreach (var item in Model)
            {

                <div class="form-group">
                @Html.LabelFor(modelItem => item.id_car , new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.id_car )
                    @Html.ValidationMessageFor(modelItem => item.id_car )
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(modelItem => item.car_name , new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.car_name )
                    @Html.ValidationMessageFor(modelItem => item.car_name )
                </div>
            </div>


            <div class="form-group">
                @Html.LabelFor(modelItem => item.name_user, new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.name_user)
                    @Html.ValidationMessageFor(modelItem => item.name_user)
                </div>
            </div>
    }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
使用My_应用程序模型;
名称空间My_App.Controllers
{
公共类注册控制器:控制器
{
[HttpPost]
公众行动结果登记()
{
Database1 db=新的Database1();
List MyClassList=新列表();
变量详细信息=(从数据库中的c开始)
加入db。c.id\u车上的用户等于u.id\u车
选择新的{c.id\u car,c.id\u city,c.car\u name,u.id\u user,u.name\u user});
foreach(详细的var项目)
{
MyClass mC=新的MyClass();
mC.id_车=item.id_车;
mC.id_city=item.id_city;
mC.car\u name=item.car\u name;
mC.id_user=item.id_user;
mC.name\u user=item.name\u user;
MyClassList.Add(mC);MyClassList.Add(mC);
}
返回视图(MyClassList);
}
看法

@model IEnumerable
@使用(Html.BeginForm(“注册”,“注册”,FormMethod.Post))
{   
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.ValidationSummary(true)
@foreach(模型中的var项目)
{
@LabelFor(modeleItem=>item.id_car,新的{@class=“controllabel col-md-2”})
@EditorFor(modeleItem=>item.id\u car)
@Html.ValidationMessageFor(modelItem=>item.id\u car)
@LabelFor(modeleItem=>item.car_name,新的{@class=“control label col-md-2”})
@EditorFor(modeleItem=>item.car\u name)
@Html.ValidationMessageFor(modelItem=>item.car\u name)
@LabelFor(modeleItem=>item.name_用户,新的{@class=“controllabel col-md-2”})
@EditorFor(modeleItem=>item.name\u用户)
@Html.ValidationMessageFor(modelItem=>item.name\u用户)
}
我现在需要了解如何将MYClass中的输入数据发布并保存到一个表中(Car和User)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using My_App.Models;

namespace My_App.Controllers
{
    public class RegistrationController : Controller
    {
[HttpPost]
        public ActionResult Registration()
        {
            Database1 db = new Database1();
              List<MyClass> MyClassList = new List<MyClass>();

            var details = (from c in db.Car
                           join u in db.User on c.id_car equals u.id_car
                           select new { c.id_car, c.id_city, c.car_name, u.id_user,u.name_user }).ToList();
            foreach (var item in details)
            {
                MyClass mC = new MyClass();
                mC.id_car = item.id_car;
                mC.id_city = item.id_city;
                mC.car_name = item.car_name;
                mC.id_user = item.id_user;
                mC.name_user = item.name_user;
                MyClassList.Add(mC); MyClassList.Add(mC);
              }

           return View(MyClassList);
        }
 @model IEnumerable<My_app.Models.MyClass>
            @using (Html.BeginForm("Registration", "Registration", FormMethod.Post))
        {   
         @Html.AntiForgeryToken()

                     @Html.ValidationSummary(true)
        <div class="form-horizontal">


            @Html.ValidationSummary(true)

                 @foreach (var item in Model)
            {

                <div class="form-group">
                @Html.LabelFor(modelItem => item.id_car , new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.id_car )
                    @Html.ValidationMessageFor(modelItem => item.id_car )
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(modelItem => item.car_name , new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.car_name )
                    @Html.ValidationMessageFor(modelItem => item.car_name )
                </div>
            </div>


            <div class="form-group">
                @Html.LabelFor(modelItem => item.name_user, new { @class = "control-label col-md-2" })
                <div class="col-md-10">

                    @Html.EditorFor(modelItem => item.name_user)
                    @Html.ValidationMessageFor(modelItem => item.name_user)
                </div>
            </div>
    }