使用模型访问winform c#中的userControl值
我在一个smal项目中工作,在这个项目中,我使用主窗体中显示的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
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,因为它似乎在用户控件中不起作用,因为我的用户控件没有显示在表单中!