C#(ASP.NET) DataList数据库数据绑定

DataList数据绑定

1.连接数据库

(1)创建连接字符串

(2)创建连接对象

2.获取存储过程

(1)创建存储过程

(2)获取存储过程

3.获取数据表

(1)创建SqlDataAdapter对象

(2)填充SqlDataAdapter对象

(3)返回DataTable对象

4.数据绑定

(1)设置DataList.DataSource属性

(2)编写前端DataList控件及子控件

(3)给子控件赋值 <%# Eval("数据列名称")%>

//Web.Config文件配置

<configuration>
  <appSettings>
    <add key="connectionString" value="server=WIN-V30CUN3PJB1\SQLEXPRESS; database=yanirui; user=sa; pwd=FRP+757721728;"/>
  </appSettings>

//数据库连接对象类源码

public class Database
    {
        /// <summary>
        /// 连接数据库
        /// </summary>
        /// <returns>连接对象</returns>
        public SqlConnection GetConnection()
        {
            return new SqlConnection(ConfigurationManager.AppSettings["connectionString"]);
        }

/// <summary>
        /// 执行管理命令
        /// </summary>
        /// <param name="command">命令对象</param>
        public void ExecuteNonQuery(SqlCommand command)
        {
            try
            {
                if (command.Connection.State != ConnectionState.Open)
                {
                    command.Connection.Open();
                }
                command.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                if (command.Connection.State == ConnectionState.Open)
                {
                    command.Connection.Close();
                }
            }
        }

/// <summary>
        /// 执行单行单列查询命令
        /// </summary>
        /// <param name="command">命令对象</param>
        /// <returns>单行单列查询结果</returns>
        public string ExecuteScalar(SqlCommand command)
        {
            try
            {
                if (command.Connection.State != ConnectionState.Open)
                {
                    command.Connection.Open();
                }
                return command.ExecuteScalar().ToString();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                if (command.Connection.State == ConnectionState.Open)
                {
                    command.Connection.Close();
                }
            }
        }

/// <summary>
        /// 执行单行查询命令
        /// </summary>
        /// <param name="command">命令对象</param>
        /// <returns>单行查询结果</returns>
        public SqlDataReader ExecuteReader(SqlCommand command)
        {
            try
            {
                if (command.Connection.State != ConnectionState.Open)
                {
                    command.Connection.Open();
                }
                return command.ExecuteReader();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                if (command.Connection.State == ConnectionState.Open)
                {
                    command.Connection.Close();
                }
            }
        }

/// <summary>
        /// 查询表
        /// </summary>
        /// <param name="command">命令</param>
        /// <param name="tableName">表名称</param>
        /// <returns>表</returns>
        public DataTable GetTable(SqlCommand command, string tableName)
        {
            try
            {
                if (command.Connection == null)
                {
                    command.Connection = GetConnection();
                }
                if (command.Connection.State != ConnectionState.Open)
                {
                    command.Connection.Open();
                }
                DataTable dt = new DataTable();
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                adapter.Fill(dt);
                return dt;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

/// <summary>
        /// 查询存储过程
        /// </summary>
        /// <param name="procName">存储过程名称</param>
        /// <returns>命令</returns>
        public SqlCommand GetCommand(string procName)
        {
            using (SqlConnection connection = GetConnection())
            {
                using (SqlCommand command = new SqlCommand())
                {
                    connection.Open();
                    command.CommandText = procName;
                    command.CommandType = CommandType.StoredProcedure;
                    return command;
                }
            }
        }
    }

//数据管理类

public class ProductManager
    {
        Database db = new Database();

/// <summary>
        /// 获取产品信息列表
        /// </summary>
        /// <returns></returns>
        public DataTable GetProductInfoList()
        {
            return db.GetTable(db.GetCommand("proc_GetProductInfoList"),
                "ProductInfoTable");
            //DataList dl = new DataList();
            //dl.DataSource = dt;
            //dl.DataKeyField = dt.Columns[0].ToString();
            //dl.DataBind();
        }

/// <summary>
        /// 获取产品信息
        /// </summary>
        /// <returns></returns>
        public object GetProductInfo(int productId)
        {
            SqlDataReader reader = db.ExecuteReader(db.GetCommand("proc_GetProductInfo"));
            if (reader.Read())
            {
                return reader.GetValue(productId);
            }
            return null;
        }

/// <summary>
        /// 添加产品信息
        /// </summary>
        public void AddProductInfo()
        {
            db.ExecuteNonQuery(db.GetCommand("proc_AddProductInfo"));
        }

/// <summary>
        /// 更新产品信息列表
        /// </summary>
        public void UpdateProductInfoList()
        {
            db.ExecuteNonQuery(db.GetCommand("proc_UpdateProductInfoList"));
        }

/// <summary>
        /// 编辑产品信息
        /// </summary>
        public void EditProductInfo()
        {
            db.ExecuteNonQuery(db.GetCommand("proc_EditProductInfo"));
        }

/// <summary>
        /// 删除产品信息
        /// </summary>
        public void DeleteProductInfo()
        {
            db.ExecuteNonQuery(db.GetCommand("proc_DeleteProductInfo"));
        }

/// <summary>
        /// 清空产品信息列表
        /// </summary>
        public void ClearProductInfoList()
        {
            db.ExecuteNonQuery(db.GetCommand("proc_ClearProductInfoList"));
        }
    }

//调用数据绑定

public partial class productlist : System.Web.UI.Page
    {
        public ProductManager pm;

protected void Page_Load(object sender, EventArgs e)
        {
            pm = new ProductManager();
            DataTable dt = pm.GetProductInfoList();
            productDataList.DataSource = dt;
            productDataList.DataKeyField = dt.Columns[0].ToString();
            productDataList.DataBind();
        }
    }

<!--数据显示-->

<div class="productbox">
        <asp:DataList ID="productDataList" runat="server" Width="500"
            BorderColor="Red" BorderWidth="1" Height="500" DataSourceID="" DataKeyField="productId">
            <HeaderTemplate>
                <ul>
                    <li>产品名称</li>
                    <li>产品图片</li>
                    <li>产品价格</li>
                </ul>
            </HeaderTemplate>
            <ItemTemplate>
                <table>
                    <tr>
                        <td style="border:1px inset red; width:50px; height:50px;">
                            产品名称:<%# Eval("productName") %>
                            产品图片:<img src="<%# Eval("productImgPath") %>" />
                            产品价格:<%# Eval("productPrice") %>
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
            <EditItemTemplate>
                <table>
                    <tr>
                        <td style="border:1px inset red; width:50px; height:50px;">
                            产品名称:<%# Eval("productName") %>
                            产品图片:<img src="<%# Eval("productImgPath") %>" />
                            产品价格:<%# Eval("productPrice") %>
                        </td>
                    </tr>
                </table>
            </EditItemTemplate>
        </asp:DataList>
    </div>

原文地址:https://www.cnblogs.com/furuipeng/p/10509859.html

时间: 2024-08-29 12:46:13

C#(ASP.NET) DataList数据库数据绑定的相关文章

前台直接访问数据库,DataList的数据绑定

前台直接访问数据库.把全部数据取出来就可以.我个人比较喜欢这种方法.很简单. protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { listbind(); listbind2(); //listbind3(); } } /// <summary> /// DataList1的列表 /// </summary> protected void listbind() { string MenuS

asp开发出现数据库引擎错误: &#39;80040e14&#39;

几分钟写完一个程序,在浏览器上进行测试的时候却总是出现Microsoft JET Database Engine  '80040e14'.网上搜了许多资料,自己又定位程序出错的位置进行异常仔细的检查,可是仍然没有任何进展..真真是分分钟都有想要放弃重新开始写得冲动.. 网上给出的解决方案大致就是修改数据库访问权限,还有就是程序语法错误(大多数都是这种情况),还有一些原因,不过我敢确定我不是在这些方面出现了问题,于是便不做任何计较.根据我个人的情况,报错的位置大概就是open数据库的时候,不过我敢

asp.net实现数据库读写分离(SQLSERVER2005,ORACLE)【转】

很多时间我们肯定希望数据库的读写与程序是分离,这样可以提高业务量同时提高服务器性能,下面我来以SQL Server 2005为实例来介绍数据库读写分离方法,大家可参考. 下面我们重点介绍Sql Server 2005是如何实现负载均衡的. Sql Server 2005的新特性 SQL Server 2005对端到端(P2P)拓扑结构上事务性的复制加强了支持.P2P的拓扑结构支持无限的发布服务器,它们彼此之间可以互相交换事务. P2P拓扑是SQL Server的一个巨大进步.现在,多端点服务器可

ASP.NET(C#) 数据库操作类 SqlServerDataBase

1 using System.Web.Security; 2 using System.Web.UI; 3 using System.Web.UI.WebControls; 4 using System.Web.UI.WebControls.WebParts; 5 using System.Web.UI.HtmlControls; 6 using System.Data.SqlClient; 7 8 namespace Mysqlserver 9 { 10 /// <summary> 11 /

ASP 连接 MySQL 数据库两种方法

一般都是用myodbc来连接.首先,在系统中安装 Mysql 的ODBC数据库驱动.如安装稳定版本是3.51.下载地址是:http://dev.mysql.com/downloads/connector/odbc/3.51.html. 下载安装好后.在控制面板-->管理工具-->数据源 (ODBC)中的“驱动程序”页中如果有MySQL ODBC 3.51 Driver就说明驱动已经安装成功,就可以开始写程序了. 下面是我测试时使用的程序,里面有说明就不再介绍了. 方法一: <% '设置M

asp.net实现数据库备份还原功能

-- 备份数据库 backup database db_CSManage to disk='c:\backup.bak' -- 还原数据库,必须先备份该数据库的日志文件到原先的备份文件中 backup log db_CSManage to disk='c:\backup.bak' restore database db_CSManage from disk='c:\backup.bak' 其中db_CSManage是数据库名称,disk后的路径即是备份文件存储的路径. 知道了SQL语句,那么在.

ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程

原文:ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 数据库上下文 上一章节中我们了解了 Entity Framework 并讲述了如何配置它.本章节我们就来学习如何使用它 EF 框架 ( Entity Framework ) 使我们能够使用称为实体 ( Entity) 的公共语言运行时 ( CLR ) 对象查询,插入,更新和删除数据 EF 框架将模型中定义的实体和关系映射到数据库.除此之外,它还具有以下能力: 将

ASP.NET (C#) 数据库-02_DataSource-03_SqlDataSource_OLEDB-06_FormView_ModifyData_OnAspx

摘要:ASP.NET (C#) 数据库-02_DataSource-03_SqlDataSource_OLEDB-06_FormViewModifyData_OnAspx 一.SqlDataSource 控件设定与 FormView 控件显示与异动数据范例.(在?aspx 里设置) @在 aspx 页面设置如下 ?? 未命名页面 ??? ??????? 一.SqlDataSource 控件设定与 FormView 控件显示与异动数据范例. ?????? (在 Aspx 页面上设置) ??????

[C#]ASP.NET与数据库连结

通常在写网页时,都会需要与数据库连结,并且从中取出数据或查询比对等, 接下来是说明ASP.NET该如何与数据库进行连结. 首先,与数据库连结,就最先想到必须要跟网页说明与哪个数据库连结, 并且数据库使用者的账号.密码.位置等资讯必须说明, 通常在设定数据库连结时大多网站都会介绍如何从xxxxx.aspx.cs的网页中去连结, 但是由于自己在开发时常常遇到一件事情,就是数据库的使用者名称.密码会更改, 虽然说一般而言不太可能会去更改...但有时网页并非自己开发时,就会常发生, 而如果是在xxxxx