现在的位置: 首页 > 综合 > 正文

PetaPoco.cs的基本用法

2012年12月14日 ⁄ 综合 ⁄ 共 7700字 ⁄ 字号 评论关闭

1、首先定义一个NewsInfoss类,此类中封装了我的数据库表中的所有字段

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using PetaPoco;
/// <summary>
///NewsInfoss 的摘要说明
/// </summary>
public class NewsInfoss
{
 public NewsInfoss()
 {
  //
  //TODO: 在此处添加构造函数逻辑
  //

 }

    public int NewsID { get; set; }

    public string NewsTitle { get; set; }

    public string NewsContent { get; set; }

    public DateTime NewsDate { get; set; }

  
}

 

2、自己封装一个sqlhelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///Newssql 的摘要说明
/// </summary>
public class Newssql
{
 public Newssql()
 {
  //
  //TODO: 在此处添加构造函数逻辑
  //
 }

    PetaPoco.Database db = new PetaPoco.Database("ConnStr");

    /// <summary>
    /// 查询表中的所有数据
    /// </summary>
    /// <returns></returns>
    public List<NewsInfoss> aaa()
    {
        string sql = "select * from NewsInfo";
        var db = new PetaPoco.Database("ConnStr");
        return db.Fetch<NewsInfoss>(sql);
    }

    /// <summary>
    /// 根据新闻ID获取相应的一条新闻
    /// </summary>
    /// <param name="NewsID"></param>
    /// <returns></returns>
    public List<NewsInfoss> aaa(string NewsID)
    {
        string sql = "select NewsTitle,NewsContent,CONVERT(char(10), NewsDate,120) as NewsDate from NewsInfo where NewsID=" + NewsID;
        var db = new PetaPoco.Database("ConnStr");
        return db.Fetch<NewsInfoss>(sql);
    }

    /// <summary>
    /// 根据ID获取相应的数据
    /// </summary>
    /// <param name="ID"></param>
    /// <returns></returns>
    public NewsInfoss getNewsByID(int ID)
    {
        return db.SingleOrDefault<NewsInfoss>("select NewsTitle,NewsContent,CONVERT(char(10), NewsDate,120) as NewsDate from NewsInfo where NewsID = @0 ", ID);
    }

    /// <summary>
    /// 根据新闻ID查询出我需要更新的一条数据
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public NewsInfoss Update(string id)
    {
        return db.SingleOrDefault<NewsInfoss>("select * from NewsInfo where NewsID=@0", id);
    }
}

3、添加一个展示新闻的页面Edit.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Edit.aspx.cs" Inherits="Edit" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    </head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="MyGrid" runat="server" AutoGenerateColumns="False"
            DataKeyNames="NewsID" onrowdeleting="MyGrid_RowDeleting" >
            <Columns>
                <asp:BoundField DataField="NewsID" HeaderText="新闻编号" />
                <asp:BoundField DataField="NewsTitle" HeaderText="新闻标题" />
                <asp:BoundField DataField="NewsContent" HeaderText="新闻内容" />
                <asp:BoundField DataField="NewsDate" HeaderText="发布时间" />
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton ID="linkID" runat="server"
                            CommandArgument='<%#Eval("NewsID") %>'
                            onclick="linkID_Click" ToolTip='<%# Eval("NewsID") %>'
                           >修改</asp:LinkButton>
                            <asp:LinkButton ID="lkDele" runat="server" CausesValidation="False" CommandName="Delete"
                                Text="删除" OnClientClick="return confirm('确认要删除吗?');"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
    </form>
</body>
</html>

CS代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class Edit : System.Web.UI.Page
{
   
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataBindMyGrid();
        }
    }

    protected void linkID_Click(object sender, EventArgs e)
    {
        LinkButton btn = sender as LinkButton;
        string id= btn.ToolTip.ToString();
        Response.Redirect("AddNews.aspx?NewsID="+id);
    }

    public void DataBindMyGrid()
    {
        MyGrid.DataSource = NewsHelp.DataBindGrid();
        MyGrid.DataBind();
    }

    protected void MyGrid_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string id = MyGrid.DataKeys[e.RowIndex].Values[0].ToString();
        int i = NewsHelp.DeleteGrid(id);
        if (i>0)
        {
            Response.Write("<script>alert('删除成功!!!!')</script>");
        }
        DataBindMyGrid();
    }
}

 

 

4、创建一个添加和编辑新闻的页面Ceshi.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ceshi.aspx.cs" Inherits="ceshi" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">

        .style1
        {
            width: 300px;
            border-collapse: collapse;
            border-style: solid;
            border-width: 1px;
        }
    </style>
    <script src="Scripts/Calendar4.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        <table border="1" class="style1">
            <tr>
                <td>
                    新闻标题:</td>
                <td>
                    <asp:TextBox ID="txtTitle" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    新闻内容:</td>
                <td>
                    <asp:TextBox ID="txtContent" runat="server"></asp:TextBox>
              
                </td>
            </tr>
           <tr>
                <td>
                    发布时间:</td>
                <td>
                    <asp:TextBox ID="txtDate" runat="server" onclick="MyCalendar.SetDate(this)"></asp:TextBox>
              
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: center">
                    <asp:Button ID="Button1" runat="server" Text="保存" onclick="Button1_Click" />
                </td>
            </tr>
        </table>
   
    </div>
    </form>
</body>
</html>

 

CS代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PetaPoco;

public partial class ceshi : System.Web.UI.Page
{
    string NewsID = "";
    Newssql sql = new Newssql();
    PetaPoco.Database db = new PetaPoco.Database("ConnStr");
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request["NewsID"] != null && Request["NewsID"].ToString().Trim() != "")
            {
                NewsID = Request["NewsID"].ToString();
                dataNewsInfo(Convert.ToInt32(NewsID));
            }
        }
    }
    /// <summary>
    /// 点击添加或者是更新的按钮
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button1_Click(object sender, EventArgs e)
    {
        if ( Request["NewsID"] != null && Request["NewsID"].ToString().Trim()!= "")
        {
            Update();
            Response.Redirect("NewsInfoEdit.aspx");
        }
        else
        {

            AddNewsInfo();
        }
    }
    /// <summary>
    /// 添加新闻方法
    /// </summary>
    private void AddNewsInfo()
    {
        var a = new NewsInfoss();
        a.NewsTitle = txtTitle.Text.Trim();
        a.NewsContent = txtContent.Text.Trim();
        a.NewsDate = Convert.ToDateTime(txtDate.Text.Trim());
        db.Insert("NewsInfo", "NewsID", true, a);
        Response.Redirect("NewsInfoEdit.aspx");
    }
    /// <summary>
    /// 更新新闻的方法
    /// </summary>
    void Update()
    {
     
        string sqlid=Request["NewsID"].ToString();
        NewsInfoss up = sql.Update(sqlid);
       up.NewsTitle = txtTitle.Text.Trim();
       up.NewsContent = txtContent.Text.Trim();
       up.NewsDate =Convert.ToDateTime(txtDate.Text.Trim());
       db.Update("NewsInfo", "NewsID", up, sqlid);
    }

    /// <summary>
    /// 根据新闻ID,获取到相应的新闻
    /// </summary>
    /// <param name="id"></param>
    void dataNewsInfo(int id)
    {
        NewsInfoss a = new NewsInfoss();
        a = sql.getNewsByID(id);
        txtTitle.Text = a.NewsTitle;
        txtContent.Text = a.NewsContent;
        txtDate.Text = a.NewsDate.ToString("yyyy-MM-dd").ToString() ;
    }
}

抱歉!评论已关闭.