我将附加PropIndustryNM
属性添加到Linq-to-SQL表中以进行数据检索。它工作正常。
但是当我尝试将数据插入表中时,会发生错误:
无效的列名'PropIndustryNM'
现在请给出解决方案我该怎么办?我需要两个。
我是初学者,Linq。所以请建议我能理解的简单方法。
在dbml文件中添加属性
这是我在此属性中设置值的代码。
List<BIODATA_MA> list = new List<BIODATA_MA>();
for (int i = 0; i < result.Count(); i++)
{
BIODATA_MA c = new BIODATA_MA();
INDUSTRY_MA im = new INDUSTRY_MA();
c.ACCOUNT_ID = result.ElementAt(i).ACCOUNT_ID;
c.FULL_NAME = result.ElementAt(i).FULL_NAME;
c.RESUME_HEADELINE = result.ElementAt(i).RESUME_HEADELINE;
c.KEY_SKILL = result.ElementAt(i).KEY_SKILL;
c.TOTAL_EXPERIENCE = result.ElementAt(i).TOTAL_EXPERIENCE;
c.PropIndustryNm = result.ElementAt(i).INDUSTRY;
c.PropFunctionalNm = result.ElementAt(i).FUNCTIONAL_AREA;
c.PropGraduNm = result.ElementAt(i).GRADU;
c.PropPostGraduNm = result.ElementAt(i).POST_GRADU;
// c.TRANS_DATE = result.ElementAt(i).TRANS_DATE;
list.Add(c);
}
工作正常。 但是当插入时间
BIODATA_MA objBio = new BIODATA_MA();
objBio.INDUSTRY_ID = int.Parse(ddlIndustry.SelectedItem.Value);
objBio.FUNCTIONAL_AREA_ID = int.Parse(ddlFunctionalArea.SelectedItem.Value);
if (ddlGradu.SelectedIndex > 0) objBio.GRADU_ID = int.Parse(ddlGradu.SelectedItem.Value); else objBio.GRADU_ID = 0;
if (ddlPostGradu.SelectedIndex > 0) objBio.POST_GRADU_ID = int.Parse(ddlPostGradu.SelectedItem.Value); else objBio.POST_GRADU_ID = 0;
if (ddlPhd.SelectedIndex > 0) objBio.PHD = ddlPhd.SelectedItem.Value;
objBio.COURSE = txtCourse.Text;
DCBiodataMasDataContext db = new DCBiodataMasDataContext();
db.BIODATA_MAs.InsertOnSubmit(objBio);
try
{
db.SubmitChanges();
lbMsg.Text = "added Successfully";
clearAll();
}
catch (Exception)
{
lbMsg.Text = "not added.";
throw;
}
使用InsertOnSubmit()将数据插入表中时 它抛出错误,如无效列名称'PropIndustryNm'
我不知道我的错误是什么。
答案 0 :(得分:0)
我不确定这些错误发生在哪里。 是否可以查看您的代码段,您已声明此“PropIndustryNM”属性? 在DB中有一列是真的可用吗?
供您参考,您也可以查看此链接并尝试编写自己的链接,
http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
http://www.codeproject.com/Articles/215712/LINQ-to-SQL-Basic-Concepts-and-Features
可能共享代码,我们尝试修复它。!
答案 1 :(得分:0)
解决方案1。尝试从model(dbml)
中删除所有表格,然后再次从服务器资源管理器拖放到您的模型中并重新生成它。
解决方案2. 您已从model(dbml)
中的表创建了属性(PropIndustryNM),但实际上并未存在于数据库中。
只需删除PropIndustryNM
,如果您想使用table(BIODATA_MA)
中的dbml
,就可以从模型中继承table
。尝试创建一个类。
public class BIODATA_MA_Entity : BIODATA_MA
{
public string PropIndustryNM {get; set;}
}
现在,您可以使用
List<BIODATA_MA_Entity> list = new List<BIODATA_MA_Entity>();
for (int i = 0; i < result.Count(); i++)
{
BIODATA_MA c = new BIODATA_MA();
INDUSTRY_MA im = new INDUSTRY_MA();
c.ACCOUNT_ID = result.ElementAt(i).ACCOUNT_ID;
c.FULL_NAME = result.ElementAt(i).FULL_NAME;
c.RESUME_HEADELINE = result.ElementAt(i).RESUME_HEADELINE;
c.KEY_SKILL = result.ElementAt(i).KEY_SKILL;
c.TOTAL_EXPERIENCE = result.ElementAt(i).TOTAL_EXPERIENCE;
c.PropIndustryNm = result.ElementAt(i).INDUSTRY;
c.PropFunctionalNm = result.ElementAt(i).FUNCTIONAL_AREA;
c.PropGraduNm = result.ElementAt(i).GRADU;
c.PropPostGraduNm = result.ElementAt(i).POST_GRADU;
// c.TRANS_DATE = result.ElementAt(i).TRANS_DATE;
list.Add(c);
}
此 更新 不是答案,而是关于商品的建议 使用
class
进行编码的方法。尝试像这样编码BIODATA_MA objBio = new BIODATA_MA() { INDUSTRY_ID = int.Parse(ddlIndustry.SelectedItem.Value); FUNCTIONAL_AREA_ID = int.Parse(ddlFunctionalArea.SelectedItem.Value); //others stuff }; using (var db = new DCBiodataMasDataContext()) { db.BIODATA_MAs.InsertOnSubmit(objBio); };
答案 2 :(得分:0)
应该通过更新模型中的表来修复它。