用ASP.NET做一个简单的数据流动展示

2019-02-25 11:20:39 浏览数 (1)

需求:连接数据库,在网页上显示一行数据,总共十列,每两秒刷新一次,刷新时数据往前流动(后一个单元格覆盖前一个单元格,最后一个单元格生成一个随机数)

新建项目:

删除:

重建:

放入工具:

设置居中:

新建数据库:

新建表:

建表之后更新数据库:

更新好了之后点击刷新:

刷新后:

右键randomT,在菜单里选择显示表数据,进入如下窗口: 手动键入第一行数据,再点击第二行任一格,完成第一行数据的添加:

右键mydb.mdf:

点击属性,查看并复制连接字符串:

到web.config中使用:

改成相对路径:

编写Default.aspx.cs:

代码语言:javascript复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        showdata();
    }

    protected void showdata()
    {
        string connstr = ConfigurationManager.ConnectionStrings["connstr"].ToString();//取出字符串
        SqlConnection myconn = new SqlConnection(connstr); //字符串对象化
        myconn.Open();//打开数据库

        string cmdstr = "select * from randomT";
        SqlDataAdapter myda = new SqlDataAdapter(cmdstr, myconn);//sql字符串对数据库处理
        DataSet myds = new DataSet();
        myda.Fill(myds);//处理完的数据fill到myds

        GridView1.DataSource = myds;
        GridView1.DataBind();
        myds.Dispose();
        myda.Dispose();
        myconn.Close();
    }
}

到此,运行,显示数据:


设置属性:

双击生成事件:

最终编写Default.aspx.cs:

代码语言:javascript复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void showdata()
    {
        string connstr = ConfigurationManager.ConnectionStrings["connstr"].ToString();//取出字符串
        SqlConnection myconn = new SqlConnection(connstr); //字符串对象化
        myconn.Open();//打开数据库

        string cmdstr = "select * from randomT";
        SqlDataAdapter myda = new SqlDataAdapter(cmdstr, myconn);//sql字符串对数据库处理
        DataSet myds = new DataSet();
        myda.Fill(myds);//处理完的数据fill到myds

        SqlCommand mycmd = new SqlCommand(cmdstr,myconn);
        SqlDataReader mydr = mycmd.ExecuteReader();//读一整行的数据,注意在使用另外一个Execute的时候要将此关掉,不然会报错
        int fieldCount = mydr.FieldCount;//得到列数

        int[] valueArray = new int[fieldCount];//用来存列值
        string[] fieldNames = new string[fieldCount];//用来存列名

        for (int i = 0; i < fieldCount; i  )//获取列名
        {
            fieldNames[i] = mydr.GetName(i).ToString();
        }
        for (int i = 0; i < fieldCount; i  )//获取列值
        {
            valueArray[i] = Convert.ToInt32(myds.Tables[0].Rows[0][i].ToString());
        }
        mydr.Close();//解放用不到的资源,避免报错

        for (int i = 1; i < fieldCount - 1; i  )//从后往前覆盖
        {
            valueArray[i] = valueArray[i   1];
        }
        Random rd = new Random();
        valueArray[fieldCount - 1] = rd.Next(0, 101);

        //更新数据库
        for(int i = 1; i <= fieldCount - 1; i  )
        {
            string updateStr = @"update randomT set "   fieldNames[i]   " = "   valueArray[i]   "where id=1";
            mycmd.CommandText = updateStr;
            mycmd.ExecuteNonQuery();
        }

        GridView1.DataSource = myds;
        GridView1.DataBind();
        myds.Dispose();
        myda.Dispose();
        myconn.Close();
    }

    protected void Timer1_Tick(object sender, EventArgs e)
    {
        showdata();
    }
}

实现每两秒刷新数据:

0 人点赞