ListView选择ObjectDataSource数据源

  ListView使用ObjectDataSource作为数据源。

  一、创建解决方案,Accesss数据库文件、 类库(DAL)、Web程序。

  数据库:表(User),字段(ID,Name,Sex)

  类库(DAL)代码:

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Configuration;
using System.Data.OleDb;

namespace DAL
{
    public class User
    {
        public static string connectionString
        {
            get
            {
                string conStr = ConfigurationManager.ConnectionStrings["study10ConnectionString"].ConnectionString;
                return conStr;
            }
        }
        public DataTable SelectMethod()
        {
            using (OleDbConnection conn = new OleDbConnection(connectionString))
            {
                OleDbDataAdapter oda = new OleDbDataAdapter();
                OleDbCommand comm = conn.CreateCommand();
                comm.CommandType = CommandType.Text;
                comm.CommandText = "SELECT [ID],[Name],[Sex] FROM [User]";
                oda.SelectCommand = comm;

                DataTable dt = new DataTable();
                oda.Fill(dt);
                return dt;
            }
        }

        public int DeleteMethod(int ID)
        {
            using (OleDbConnection conn = new OleDbConnection(connectionString))
            {
                conn.Open();
                OleDbCommand comm = conn.CreateCommand();
                comm.CommandType = CommandType.Text;
                comm.CommandText = "DELETE FROM [User] WHERE [ID]=@id";
                comm.Parameters.Add(new OleDbParameter("@id",ID));
                return comm.ExecuteNonQuery();
            }
        }
        public int UpdataMethod(string name, string sex, int ID)
        {
            using (OleDbConnection conn = new OleDbConnection(connectionString))
            {
                conn.Open();
                OleDbCommand comm = conn.CreateCommand();
                comm.CommandType = CommandType.Text;
                comm.CommandText = "UPDATE [User] SET [Name]=@name,[Sex]=@sex WHERE [ID]=@id";
                comm.Parameters.Add(new OleDbParameter("@name", name));
                comm.Parameters.Add(new OleDbParameter("@sex", sex));
                comm.Parameters.Add(new OleDbParameter("@id", ID));
                return comm.ExecuteNonQuery();
            }
        }
        public int InsertMethod(string name, string sex)
        {
            using (OleDbConnection conn = new OleDbConnection(connectionString))
            {
                conn.Open();
                OleDbCommand comm = conn.CreateCommand();
                comm.CommandType = CommandType.Text;
                comm.CommandText = "INSERT INTO [User] ([Name],[Sex]) VALUES(@name,@sex)";
                comm.Parameters.Add(new OleDbParameter("@name", name));
                comm.Parameters.Add(new OleDbParameter("@sex", sex));
                return comm.ExecuteNonQuery();
            }
        }
    }
}

  Web程序:

  配置文件添加connectionStrings节点:

View Code
<?xml version="1.0"?>

<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>

  <connectionStrings>
    <add name="ConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\study10.accdb;Persist Security Info=True"
      providerName="System.Data.OleDb" />
  </connectionStrings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

  数据库放在App_Data文件夹中。

  ObjectDataSource-TypeName属性=执行数据操作的对象类型(类名)

  数据源手动配置就可以了(选择相对应的方法),代码会自动生成。图

  Default.aspx代码:

View Code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ObjectDataSourceDemo.Default" %>

<!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:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteMethod"
            InsertMethod="InsertMethod" SelectMethod="SelectMethod" TypeName="DAL.User" UpdateMethod="UpdataMethod">
            <DeleteParameters>
                <asp:Parameter Name="ID" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="name" Type="String" />
                <asp:Parameter Name="sex" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="name" Type="String" />
                <asp:Parameter Name="sex" Type="String" />
                <asp:Parameter Name="ID" Type="Int32" />
            </UpdateParameters>
        </asp:ObjectDataSource>
        <asp:ListView ID="ListView1" runat="server" DataKeyNames="ID" ItemPlaceholderID="itemPlaceholder" InsertItemPosition="LastItem"
            DataSourceID="ObjectDataSource1">
            <LayoutTemplate>
                <table border="1" style="background-color:Gray">
                    <tr>
                        <th>
                            ID
                        </th>
                        <th>
                            Name
                        </th>
                        <th>
                            Sex
                        </th>
                        <th>
                            删除
                        </th>
                        <th>
                            编辑
                        </th>
                    </tr>
                    <tr id="itemPlaceholder" runat="server">
                    </tr>
                </table>
            </LayoutTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                       <%#Eval("ID") %>
                    </td>
                    <td>
                        <%#Eval("Name") %>
                    </td>
                    <td>
                        <%#Eval("Sex") %>
                    </td>
                    <td>
                        <asp:LinkButton ID="lbtnDelete" CommandName="Delete" runat="server">删除</asp:LinkButton>
                    </td>
                    <td>
                        <asp:LinkButton ID="LinkButton1" CommandName="Edit" runat="server">编辑</asp:LinkButton>
                    </td>
                </tr>
            </ItemTemplate>
            <EmptyDataTemplate>
                数据为空!
            </EmptyDataTemplate>
            <EditItemTemplate>
                <tr>
                    <td>
                        <%#Eval("ID") %>
                    </td>
                    <td>
                        <asp:TextBox ID="txtName" runat="server" Text='<%#Bind("Name") %>'></asp:TextBox>
                    </td>
                    <td>
                        <asp:TextBox ID="txtSex" runat="server" Text='<%#Bind("Sex") %>'></asp:TextBox>
                    </td>
                    <td>
                        <asp:LinkButton ID="lbtnUpdate" CommandName="Update" runat="server">提交</asp:LinkButton>
                    </td>
                    <td>
                        <asp:LinkButton ID="lbtnCancel" CommandName="Cancel" runat="server">取消</asp:LinkButton>
                    </td>
                </tr>
            </EditItemTemplate>
            <InsertItemTemplate>
                <tr>
                    <td>
                       
                    </td>
                    <td>
                        <asp:TextBox ID="txtName" runat="server" Text='<%#Bind("Name") %>'></asp:TextBox>
                    </td>
                    <td>
                        <asp:TextBox ID="txtSex" runat="server" Text='<%#Bind("Sex") %>'></asp:TextBox>
                    </td>
                    <td>
                        <asp:LinkButton ID="lbtnUpdate" CommandName="Insert" runat="server">添加</asp:LinkButton>
                    </td>
                    <td>
                        <asp:LinkButton ID="LinkButton2" CommandName="Cancel" runat="server">清除</asp:LinkButton>
                    </td>
                </tr>
            </InsertItemTemplate>
        </asp:ListView>
    </div>
    </form>
</body>
</html>

 注意:ListView——首先设置DataKeyNames(ID)用于Delete,Update传递参数。Update,Insert方法需要传递参数来更新,Name,Sex字段用Bind绑定(双向)

最终效果图:

 

posted @ 2012-12-03 21:03  阿朱姐姐  阅读(770)  评论(0编辑  收藏  举报

友情链接:@开源中国

回到顶部