C# CRUD操作,EntityFramework:将TextBox值(文本)传递给以类对象为参数的方法
我正在使用EF执行CRUD操作。我有一个定义为Person_T的实体,它作为参数传递给执行更新操作的方法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
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);
}
}