首先建立一个数据库MyDB
第一个是Catelog表
然后则是类别表Article
两表以Catelog的ID为主键,设立关联
建设ASP.NET Web应用程序(.NET Framework)
创建后第一步建设数据层,用工具或者手打
手打:业务层代码:
public partial class MyDBEntities1 : DbContext
{
public MyDBEntities1()
: base("name=MyDBEntities1")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Article> Article { get; set; }
public virtual DbSet<Catelog> Catelog { get; set; }
}
Articl数据层:
public partial class Article
{
public int id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public string Content { get; set; }
public Nullable<int> Catelogid { get; set; }
public virtual Catelog Catelog { get; set; }
}
Catelog数据层:
public partial class Catelog
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Catelog()
{
this.Article = new HashSet<Article>();
}
public int id { get; set; }
public string Name { get; set; }
public string comment { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Article> Article { get; set; }
}
工具:在添加中Data中找到ADO.NET 实体数据模型,选择来自数据库的EF设计器,下一步后新建连接,测试连接成功后,一直点击下一步,即创建完成。
创建Web窗体,用table包裹数据控件Repeater,在Repeater外是页眉,可以设置border获取边框,让数据看起来比较立体。
<table border="1">
<tr>
<td>标题</td>
<td>内容</td>
<td>发帖人</td>
<td>类别</td>
</tr>
数据库中需要创建ItemTemplate,否则无法输入HTML的语法,<%#Eval (“绑定的数据要与数据库相同”) %>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td><%#Eval ("Title") %></td>
<td><%#Eval ("Author") %></td>
<td><%#Eval ("Content") %></td>
<td><%#Eval ("CatelogName") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<asp:Button ID="添加" runat="server" Text="Button" OnClick="Button1_Click" />
————————————————————————————————————
点击添加按钮,进入编码层。
protected void Page_Load(object sender, EventArgs e)
{
MyDBEntities1 db = new MyDBEntities1();//连接数据库的实体化
var result = from article in db.Article
join Catelog in db.Catelog on article.Catelogid equals Catelog.id
select new { Title = article.Title,
Content = article.Content,
Author = article.Author,
CatelogName = Catelog.Name };
//连表进行查询
this.Repeater1.DataSource = result.ToList();
Repeater1.DataBind();//绑定数据库
//条件查询
List<Article>artcles=new List<Article>();//设置集合
artcles.Add(db.Article.FirstOrDefault(p => p.id == 4));//查询的条件
}
//按钮控件中的代码,设计的数据添加到数据库
protected void Button1_Click(object sender, EventArgs e)
{
MyDBEntities1 db = new MyDBEntities1();
Article article = new Article();
article.Title = "下雨了";
article.Content = "今天下雨了,等下去干饭";
article.Author = "杨姓女子";
-
-
-
- article.Catelogid = 2;//两个当中选一个
- //article.Catelog = new Catelog() { id = 2 };//两个当中选一个
-
-
db.Article.Add(article);
db.SaveChanges();
//Catelog c = new Catelog();
//c.Name = "c#";
//c.comment = "交流C#技术";
//db.Catelog.Add(c);
//int count = db.SaveChanges();
//if (count >= 0)
//{
// Response.Write("添加成功");
//}
}
以上代码中c.Name = "c#";这类代码,可以用输入控件代替,注意格式的转换,网页数据添加也不会有什么问题。
如列:c.Name = "c#"控件转换为
c.Name=this.TextBox1.Text;
感谢观看