Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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# CRUD操作,EntityFramework:将TextBox值(文本)传递给以类对象为参数的方法_C#_Asp.net_Entity Framework - Fatal编程技术网

C# CRUD操作,EntityFramework:将TextBox值(文本)传递给以类对象为参数的方法

C# CRUD操作,EntityFramework:将TextBox值(文本)传递给以类对象为参数的方法,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我正在使用EF执行CRUD操作。我有一个定义为Person_T的实体,它作为参数传递给执行更新操作的方法 public void UpdateEmployeeDetails(int personID, Person_T employee) { Person_T emp = new Person_T(); emp = Context1.Person_T.Where(x => x.Person_IDNO == personID).FirstOrDefa

我正在使用EF执行CRUD操作。我有一个定义为Person_T的实体,它作为参数传递给执行更新操作的方法

public void UpdateEmployeeDetails(int personID, Person_T employee)
    {
        Person_T emp = new Person_T();

        emp = Context1.Person_T.Where(x => x.Person_IDNO == personID).FirstOrDefault();

        emp.FirstName = employee.FirstName;
        emp.LastName = employee.LastName;
        emp.CreatedDate = DateTime.Now;
        emp.UpdatedDate = DateTime.Now;

        Context1.SaveChanges();
    }
我正在检索CodeBehind文件中字段的文本框值,如下所示:

protected void UpdateDetails_Click(object sender, EventArgs e)
    {
        if(IsPostBack)
        {
            dtobj.firstNmae = TextBoxFN.Text;
            dtobj.lastName = TextBoxLN.Text;
            QS = Request.QueryString["ReqID"];
            inte = Convert.ToInt32(QS);
            OBJECTCONT.UpdateEmployeeDetails(inte,TextBOXValues );

        }

    }
我还不知道如何将这些文本框值传递给UpdateEmployeeDetails()方法。此人的定义如下:

public partial class Person_T
{
    public int Person_IDNO { get; set; }
    public Nullable<int> Address_IDNO { get; set; }
    public string FirstName { get; set; }
    public Nullable<System.DateTime> CreatedDate { get; set; }
    public string LastName { get; set; }
    public Nullable<System.DateTime> UpdatedDate { get; set; }

    public virtual Address_Table Address_Table { get; set; }
}
公共部分类人员
{
public int Person_IDNO{get;set;}
公共可空地址\u IDNO{get;set;}
公共字符串名{get;set;}
公共可为空的CreatedDate{get;set;}
公共字符串LastName{get;set;}
公共可为Null的UpdateDate{get;set;}
公共虚拟地址_表地址_表{get;set;}
}
我知道我可能没有使用最佳编程实践,但如果有人能对这件事有所了解,那将是非常有帮助的


谢谢

有什么理由不这样做吗

OBJECTCONT.UpdateEmployeeDetails(inte,dtobj);

创建Person\u T的对象,如下所示,并将其传递到UpdateEmployeeDetails()中:

然后调用该方法:

OBJECTCONT.UpdateEmployeeDetails(inte,_person);
完整代码:

protected void UpdateDetails_Click(object sender, EventArgs e)
    {
        if(IsPostBack)
        {
             Person_T _person = new Person_T(){
                  FirstName = TextBoxFN.Text,
                  LastName = TextBoxLN.Text                      
             };

            QS = Request.QueryString["ReqID"];
            inte = Convert.ToInt32(QS);
            OBJECTCONT.UpdateEmployeeDetails(inte, _person);    
        }    
    }

这是我的第一个方法。抛出“无效参数”错误。错误1“ModelClass.ContextClass.UpdateEmployeeDetails(int,ModelClass.Person_T)”的最佳重载方法匹配具有一些无效参数,其中
dtobj
已声明?其已在父类IndividualDetails中声明。它是IndividualDetails.aspx页面的代码隐藏。不,它是DataTransferObject类的实例。你的问题实际上让我意识到了我的错误以及为什么它不起作用。谢谢,非常感谢。它工作得很好,甚至更新了记录。所以,一旦我创建了对象,我可以传递任意多的值,对吗?是的,你可以像这样给对象的属性赋值。
protected void UpdateDetails_Click(object sender, EventArgs e)
    {
        if(IsPostBack)
        {
             Person_T _person = new Person_T(){
                  FirstName = TextBoxFN.Text,
                  LastName = TextBoxLN.Text                      
             };

            QS = Request.QueryString["ReqID"];
            inte = Convert.ToInt32(QS);
            OBJECTCONT.UpdateEmployeeDetails(inte, _person);    
        }    
    }