过去3天我一直在不停地编码,现在我遇到了这个问题。从文本框设置2个变量的文本。这让我很生气。代码在编辑项目时起作用(字段不为空),在添加一个(两个字段为空)时它不起作用。
我尝试了什么: -
我尝试过使用.ToString()
方法,因为没有这种方法就行不通。
令我困惑的代码部分:
proiect.titlu = projectTitleTb.Text.ToString();
proiect.descriere = projectDescTb.Text.ToString();
由于我的时间已经不多了,我需要对此做出严厉的回答,我无法相信这样的事情需要花费很多时间。
编辑:
Before and after running the code for different case
编辑:
我认为这可能是由于对象类型之间的差异造成的:编辑时,对象类型是
{System.Data.Entity.DynamicProxies.proiecte_BFF409556A583A0C9542252D0669E388052C2AB6DA93A2EE4C48CBFB216E8114},
虽然添加它的类型简直就是proiecte。变量存储在viewstate中:
proiecte proiect
{
get
{
if (ViewState["proiect"] == null)
{
return new proiecte();
}
return ViewState["proiect"] as proiecte;
}
set
{
ViewState["proiect"] = value;
}
}
这是编辑时分配对象的内容:
proiect = ProiecteDB.getById(id_proiect);
这是函数getById
public static dynamic getById(int id)
{
var db = new firma_itEntities();
var query = (from p in db.proiectes
where p.id_proiect == id
select p).FirstOrDefault();
return query;
}
当添加对象而不进行编辑时,它不会查询数据库,因此它只是创建用途 return new proiecte();
这是班级:
[Serializable]
public partial class proiecte
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public proiecte()
{
this.tasks = new HashSet<task>();
}
public int id_proiect { get; set; }
public string descriere { get; set; }
public string status { get; set; }
public string titlu { get; set; }
public string disponibil_resurse { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<task> tasks { get; set; }
}
答案 0 :(得分:0)
好吧显然我通过创建一个新对象来解决这个问题,我在其中相应地设置了属性:
remover = NULL;
答案 1 :(得分:-1)
我希望你已经为变量设置了属性&#34; titlu&#34;和&#34; descriere&#34;在你的项目中。
请您发布上述代码。