专栏首页李蔚蓬的专栏ASP.NET | 从零到一实战分析对后台数据库增加数据、模糊查找、精确查找并展示

ASP.NET | 从零到一实战分析对后台数据库增加数据、模糊查找、精确查找并展示

新建:

新建数据库mydb.mdf、添加表:

更新数据库; 右击数据库,选择属性,复制连接字符串;(这里之前做过了,就简单点过不做细节。点击这里可以看详细步骤截图参考_《用ASP.NET做一个简单的数据流动展示》) 到web.config:

注意相对路径|DataDirectory|......

 <connectionStrings>
    <add name="DefaultConnection"
      connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-manages-c703b6e8-d35a-4082-aadf-60f5ad784980;AttachDbFilename=|DataDirectory|\aspnet-manages-c703b6e8-d35a-4082-aadf-60f5ad784980.mdf;Integrated Security=SSPI"
      providerName="System.Data.SqlClient"/>
    <add name ="connstr" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\mydb.mdf;Integrated Security=True"/>
  </connectionStrings>

删除,重建default窗口文件; 设计,插入表:

设计: 顶行合并; 输入文字; 顶行内容居中; 二列添加textbox;

改id: Name_TextBox Cate_TextBox Price_TextBox Time_TextBox Address_TextBox Contact_TextBox

合并末行,加个button,修改text,加个GridView:

新建一个common类: 右击App_Code:

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

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

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

    public static SqlConnection myconn()
    {
        string connstr = ConfigurationManager.ConnectionStrings["connstr"].ToString();
        SqlConnection myconn = new SqlConnection(connstr);
        return myconn;
    }
}

回来default窗口,双击设计界面里边入库按钮,开始编写逻辑:

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)
    {
        if (!IsPostBack)
        displayDB(); 
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        insertDB();
        displayDB();
    }

    //套路:1.connstr-sqlconn-open打开数据库
    //2.cmdstr-sqlcmd(cmdstr,conn)-cmd.ex执行数据库操作,或者其他;
    //3.关闭
    protected void insertDB()
    {
        SqlConnection myconn = common.myconn();
        myconn.Open();

        double Pricevalue = Convert.ToDouble(Price_TextBox.Text.Trim());
        string cmdstr = @"insert into Tproduct(Fname,Fcategory,Fprice,Ftime,Faddress,Fcontactname)
                values('" + Name_TextBox.Text + "' , '" + Cate_TextBox.Text + "' , " + Pricevalue + " , '" + Time_TextBox.Text + "' , '" + Address_TextBox.Text + "' , '" + Contact_TextBox.Text + "' )";
        SqlCommand mycmd = new SqlCommand(cmdstr,myconn);
        mycmd.ExecuteNonQuery();

        mycmd.Dispose();
        myconn.Close();
        Response.Write("<script>alert('入库成功')</script>");
    }

    protected void displayDB()
    {
        string connstr = ConfigurationManager.ConnectionStrings["connstr"].ToString();
        SqlConnection myconn = new SqlConnection(connstr);
        myconn.Open();

        string cmdstr = @"select * from Tproduct";

        SqlDataAdapter myda = new SqlDataAdapter(cmdstr,myconn);//查出

        DataSet myds = new DataSet();//转型
        myda.Fill(myds);

        GridView1.DataSource = myds;//赋能控件
        GridView1.DataKeyNames = new string[] { "id" };
        GridView1.DataBind();

        myda.Dispose();
        myds.Dispose();
        myconn.Close();
    }
}

如图,插入和展示就完成了:

现在增加查找功能: 末行配置多三个控件:

分别添加点击逻辑即可:

    protected void jqFind_Button_Click(object sender, EventArgs e)
    {
        SqlConnection myconn = common.myconn();
        myconn.Open();

        string cmdstr = "select *from Tproduct where Fname='" + Find_TextBox.Text.Trim() + "'";//单引号双引号括起来
        SqlDataAdapter myda = new SqlDataAdapter(cmdstr, myconn);

        DataSet myds = new DataSet();
        myda.Fill(myds);

        int rowNum = myds.Tables[0].Rows.Count;
        int columnNum = myds.Tables[0].Columns.Count;
        DataTable usingTable = myds.Tables[0];

        if (rowNum == 0)
        {
            usingTable = usingTable.Clone();//克隆
            usingTable.Rows.Add(usingTable.NewRow());//加新行
            GridView1.DataSource = usingTable;//赋能

            GridView1.Rows[0].Cells.Clear();//清空
            GridView1.Rows[0].Cells.Add(new TableCell());//加新格
            GridView1.Rows[0].Cells[0].Text = "无相关记录";//text
            GridView1.Rows[0].Cells[0].ColumnSpan = columnNum;
        }
        else
        {
            GridView1.DataSource = myds;
            GridView1.DataBind();
        }

        myds.Dispose();
        myda.Dispose();
        myconn.Close();
    }

    protected void mhFind_Button_Click(object sender, EventArgs e)
    {
        SqlConnection myconn = common.myconn();
        myconn.Open();
        
        string cmdstr = "select *from Tproduct where Fname like '%"+Find_TextBox.Text.Trim()+"%'";

        SqlDataAdapter myda = new SqlDataAdapter(cmdstr, myconn);

        DataSet myds = new DataSet();
        myda.Fill(myds);

        GridView1.DataSource = myds;
        GridView1.DataBind();

        myds.Dispose();
        myda.Dispose();
        myconn.Close();
    }

效果:

精确查找

模糊查找

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    凌川江雪
  • 关于try...except和try ....except...else

    我们写程序的时候,有时会出现一些错误或异常,导致程序终止。例如,做除法时,除数为0,会引起一个ZeroDivisionErro:

    凌川江雪
  • Android卡顿优化 | ANR分析与实战(附ANR-WatchDog源码分析及实战、与AndroidPerformanceMonitor的区别)

    运行程序,等到程序ANR或崩溃, 在Terminal使用刚刚提到的命令,导出ANR的信息文件:

    凌川江雪
  • Redis 安装与启动

    在安装 Redis 前需要了解 Redis 的版本规则以选择最合适自己的版本,Redis 约定次版本(即第一个小数点后的数字)为偶数的版本是稳定版本(如 2.4...

    smartsi
  • python3.7报错 原

    找到虚拟环境下:django/contrib/admin/widgets.py文件

    晓歌
  • 2018各高校、专业毕业生薪酬排行榜发布,这次你被平均了吗?

    导读:这两天刷微博看到一个热门话题,叫2018年中国大学毕业生薪酬排行榜 TOP 200。这份榜单罗列了各高校毕业生的薪资排名。

    华章科技
  • 干货 | 谷歌TensorFlow Extended 如何帮助开发者快速落地项目

    顾仁民,谷歌资深工程师,目前负责谷歌机器学习技术在国内的技术推广与企业合作。曾任谷歌展示广告系统研发团队主管,支撑国外若干大型网站的广告系统营收。

    携程技术
  • 2018人才趋势报告:区块链爆火!平均薪资高达2.58万元 成行业最大风口

    2018 旺季人才趋势报告:区块链成最大风口,岗位薪资 2.58 万 进入三月,2018 年的人才跳槽黄金季节如期而至。 根据 BOSS 直聘人才大数据平台积...

    老九君
  • 一个聪明的计划以确保物联网安全可能仍然有很大的缺点

    事物互联网安全危机继续快速发展。新的僵尸网络可以应用于征兵路由器和安全摄像机,黑客利用医疗设备来破坏整个医院网络,智能玩具仍然在儿童身上蔓延。互联网基础设施公司...

    首席架构师智库
  • RStudio下载安装

    RStudio是一种R语言的集成开发环境(IDE),其亮点是出色的界面设计及编程辅助工具。它可以在多种平台上运行,包括windows,Mac,Ubuntu,以及...

    用户1359560

扫码关注云+社区

领取腾讯云代金券