使用模型访问winform c#中的userControl值

使用模型访问winform c#中的userControl值,c#,winforms,user-controls,C#,Winforms,User Controls,我在一个smal项目中工作,在这个项目中,我使用主窗体中显示的userControl。我使用的模型类允许访问数据库,如下所示: public void InsertRoute(Route route) { string routecode = route.RouteCode.ToString(); string vehiclecode = route.VehicleCode.ToString(); string firsstuden

我在一个smal项目中工作,在这个项目中,我使用主窗体中显示的userControl。我使用的模型类允许访问数据库,如下所示:

    public void InsertRoute(Route route)
    {
        string routecode = route.RouteCode.ToString();
        string vehiclecode = route.VehicleCode.ToString();
        string firsstudentname = route.FirstStudentName.ToString();


        using (SqlCommand cmd = new SqlCommand("InsertRoute2", conn))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@RouteCode", routecode));
            cmd.Parameters.Add(new SqlParameter("@VehicleCode", vehiclecode));
            cmd.Parameters.Add(new SqlParameter("@FirstStudentName", firsstudentname));


            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
        }
    }
然后我有一个名为UCCreateRotue的用户控件,它有几个文本框和按钮单击事件处理程序:

   private void btnCreateRoute_Click_1(object sender, EventArgs e)
    {
        UCRouteCreate form = new UCRouteCreate();
        //DialogResult dialog = form.ShowDialog();

        //if (dialog == DialogResult.OK)
        //{
            Route route = controller.CreateMovieFromText(form);
            controller.InsertRoute(route);
            //RefreshTable();
        //}

    }
然后我有一个叫做route的类,如下所示

       class Route
{

    private   GlobalReach.UserControls.UCRouteCreate usrCon;
    public string RouteCode
    {
        get { return usrCon.txtRouteCode.Text ;}
        set { usrCon.txtRouteCode.Text = value ; }

    }
}

然后我在控制器中有一个方法,如下所示,通过存储过程执行插入

        public Route CreateRouteFromText(UCRouteCreate form)
    {

        string routecode =form.txtRouteCode.Text.ToString();
        string vehiclecode = form.txtVehicleCode.Text.ToString();
        string firststudentname = form.txtFStudent.Text.ToString();


        Route route = new Route();
        return route;
    }
我的问题是,当我单击按钮时,代码正在工作,因为我确实在表中插入了新行,但值为空,即值输入为空(如果有任何意义),而我选择不填充的字段输入为空值。。? 您能告诉我为什么我在usrControl文本框中输入值时,该值无法通过我的代码捕获。。
提前感谢

按钮单击事件创建一个空表单,您已经注释掉了显示对话框行,因此输入仍然是空的(除非您将它们初始化为任何内容,但即使如此)。在CreateRouteFromText中,将表单值指定给局部变量,然后创建一个空路由对象并将其传递回insert方法。因此,毫不奇怪,您有空行

应至少将管线对象设置为窗体所具有的:

public Route CreateRouteFromText(UCRouteCreate form)
{
    return new Route() 
    { 
        RouteCode = form.txtRouteCode.Text,
        VehicleCode = form.txtVehicleCode.Text,
        FirstStudentName = form.txtFStudent.Text
    }
}

Hi rangarok56我评论了showdialog,因为它似乎在用户控件中不起作用,因为我的用户控件没有显示在表单中!