2017-04-14 68 views
0

这是我在SQL Server表:添加和保存数据

Create table SubTypes 
(
    IDSub int primary key identity(1,1), 
    Offerstype varchar(255) not null, 
    CostOffers varchar(25) not null 
); 

代码在asp.net

<fieldset> 
    <legend>ALL Offers</legend> 
    <asp:Repeater ID="Offers" runat="server" > 
     <HeaderTemplate> 
      <table class="table table-hover"> 
       <tr> 
        <th>ID</th> 
        <th>Offers type</th> 
        <th>Cost</th> 
        <th>Delete</th> 
       </tr> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <tr> 
       <td><%#Eval("IDSub")%></td> 
       <td><%#Eval("Offerstype")%></td><--error--> 
       <td><%#Eval("CostOffers")%></td> 
       <td><%#Eval("delete from SubTypes where [email protected];")%></td> 
      </tr> 
      </table> 
     </ItemTemplate> 
    </asp:Repeater> 
</fieldset> 

C#

SportsCenterEntities db = new SportsCenterEntities(); 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) { 
     Offers_DataBinding(); 
    } 
} 

public void Offers_DataBinding() 
{ 
    Offers.DataSource = db.SubTypes.ToList(); 
    Offers.DataBind(); 
} 

错误

Descripti on:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.Web.HttpException:数据绑定:“System.Data.Entity.DynamicProxies.SubType_084D6F49655DAD7C286182B0A82194429DD9DDEC3EA06D3CB3ED078CA68E2371”不包含名为“子类型”的属性。

Image

+0

是 'SportsCenterEntities()' 创建一个对象具有属性?它看起来像你用来保存来自数据库的结果,但是你还没有在该对象上创建属性。你能告诉我们你的代码段吗? –

+0

是的,我认为,我如何创建这个属性? –

+0

这是什么意思:'​​<%#Eval(“从IDSub = @ IDSub;的子类型中删除”)%>'?我不认为我们有'Eval(sql命令)'...而你的itemtemplate是不正确的。您在项目模板中不能有'',因为它会在每一行上重复。 –

回答

0

你可以这样做:

<table class="table table-hover"> 
<asp:Repeater ID="Offers" runat="server" OnItemCommand="Delete"> > 
    <HeaderTemplate>    
      <tr> 
       <th>ID</th> 
       <th>Offers type</th> 
       <th>Cost</th> 
       <th>Delete</th> 
      </tr> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr> 
      <td><%#Eval("IDSub")%></td> 
      <td><%#Eval("Offerstype")%></td><--error--> 
      <td><%#Eval("CostOffers")%></td> 
      <td><asp:Button ID="btnDelete" runat="server" IDSub='<%#Eval("IDSub")%>' Text="Delete"/></td> 
     </tr>    
    </ItemTemplate> 
</asp:Repeater> 
</table> 

而在代码后来居上从行发送的事件:

protected void Delete(Object Sender, RepeaterCommandEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      Button clickedDeleteButton= (Button)e.Item.FindControl("btnDelete"); 
      int idSub = int.Parse(clickedDeleteButton.Attributes["IDSub"]); 
      // Here Delete codes by id... 
+0

谢谢,但它仍然给出了相同错误 –

+0

那么问题就出在别的地方,因为我们还没有'SubType'。错误**不包含名称为'SubType'**的属性.... –

+0

Offerstype的以前的名称是“SubType”...我将其重命名为理解所需的 –