簡體   English   中英

使用模型訪問Winform C#中的userControl值

[英]accessing userControl value in winform c# using Model

我正在一個小型項目中使用主窗體中顯示的userControl。 我正在使用Model類,該類允許訪問數據庫,如下所示:

    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的用戶控件,它具有幾個文本框和Button單擊Event handler:

   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 ; }

    }

}

然后我在控制器中有如下方法來執行通過sproc完成的插入

        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;
    }

我的問題是,當我單擊按鈕單擊時,代碼正在工作,因為我確實將新行插入到表中,但具有空值,即,將值輸入為空(如果有任何意義),而我沒有選擇的字段填寫輸入為NULL值..? 您能否建議我為什么在我的usrControl TextBox中輸入值時無法通過我的代碼捕獲該值。.提前謝謝

button click事件會創建一個空表單,您已經注釋掉了顯示對話框行,因此輸入仍然為空(除非您將它們初始化為任何東西,即使如此)。 在CreateRouteFromText中,將表單值分配給局部變量,然后創建一個空的Route對象,並將其傳遞回insert方法。 因此,沒有空行就不足為奇了。

應該至少將Route對象設置為表單具有的內容:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM