asp.net结课作业中遇到的问题解决2

目录

1、如何实现评论交流的界面

2、如果想要将文字添加到数据库中,而不是乱码,该怎么修改

3、如果想要添加的数据已经存在于数据库,就不允许添加了,该如何实现

4、想要实现某个模块下有好几个小的功能该如何实现

5、想要实现鼠标扫过书籍的名字就可以显示它的封面,该如何实现

6、显示封面时在某个区域,而不是最顶端,该如何实现

待解决问题


1、如何实现评论交流的界面

 就设置一个留言的界面,然后再设置一个显示留言的界面,在显示的界面中,用户还可以进行修改评论。

2、如果想要将文字添加到数据库中,而不是乱码,该怎么修改

        要确保在将文本插入数据库时不会出现乱码,可以使用参数化查询。这样做可以防止 SQL 注入,并且可以正确处理文本中的特殊字符,避免乱码问题。

例如:


    string adduser = TextBox1.Text;
    string bookid = TextBox2.Text;
    string addtime = TextBox3.Text;
    string comment = TextBox4.Text;

    // 使用参数化查询
    string sqlcmd = "insert into pinglun(adduser,addtime,bookid,commentcontent) values (@AddUser, @AddTime, @BookID, @Comment)";
    SqlCommand mycommand = new SqlCommand(sqlcmd, myconnection);

    // 添加参数并设置值
    mycommand.Parameters.AddWithValue("@AddUser", adduser);
    mycommand.Parameters.AddWithValue("@AddTime", addtime);
    mycommand.Parameters.AddWithValue("@BookID", bookid);
    mycommand.Parameters.AddWithValue("@Comment", comment);

    // 执行 SQL 查询
    mycommand.ExecuteNonQuery();

在使用的过程中,出现了下面的这个错误。 

出现的原因:在初始化的时候没有检查登录的状态,所以这里并没有登录,即Session["UserID"]是个空值,所以就会出现上述错误。

解决办法:首先判断登录状态,如果未登录,就跳转到登陆界面进行登录,如果登录了,就进行下面的操作。 

3、如果想要添加的数据已经存在于数据库,就不允许添加了,该如何实现

先检查是否存在,如果不存在就添加,如果存在就不能添加。

例如:

protected void Button1_Click(object sender, EventArgs e)
{
    myconnection.ConnectionString = sqlconn;
    myconnection.Open();
    
    string name = TextBox1.Text;
    string pwd = TextBox2.Text;
    string sex = DropDownList1.Text;
    string email = TextBox3.Text;
    string number = TextBox4.Text;
    
    // 在插入之前检查是否已存在相同数据
    if (!IsDataExists(name, pwd, sex, email, number))
    {
        // 数据库中不存在相同数据,执行插入操作
        string sqlcmd = "insert into GRmessage(用户名,密码,性别,邮箱,电话) values (@Name, @Pwd, @Sex, @Email, @Number)";
        SqlCommand mycommand = new SqlCommand(sqlcmd, myconnection);
        mycommand.Parameters.AddWithValue("@Name", name);
        mycommand.Parameters.AddWithValue("@Pwd", pwd);
        mycommand.Parameters.AddWithValue("@Sex", sex);
        mycommand.Parameters.AddWithValue("@Email", email);
        mycommand.Parameters.AddWithValue("@Number", number);
        mycommand.ExecuteNonQuery();
        Response.Write("<script>alert('添加成功');window.location.href = 'read.aspx';</script>");
    }
    else
    {
        // 数据库中已存在相同数据,给出提示或执行其他操作
        Response.Write("<script>alert('数据已存在,无法添加');</script>");
    }
    
    myconnection.Close();
}

// 检查数据库中是否已存在相同数据
protected bool IsDataExists(string name, string pwd, string sex, string email, string number)
{
    string sqlcmd = "SELECT COUNT(*) FROM GRmessage WHERE 用户名 = @Name AND 密码 = @Pwd AND 性别 = @Sex AND 邮箱 = @Email AND 电话 = @Number";
    SqlCommand command = new SqlCommand(sqlcmd, myconnection);
    command.Parameters.AddWithValue("@Name", name);
    command.Parameters.AddWithValue("@Pwd", pwd);
    command.Parameters.AddWithValue("@Sex", sex);
    command.Parameters.AddWithValue("@Email", email);
    command.Parameters.AddWithValue("@Number", number);
    
    int count = (int)command.ExecuteScalar();
    return count > 0;
}

4、想要实现某个模块下有好几个小的功能该如何实现

使用控件:treeview

5、想要实现鼠标扫过书籍的名字就可以显示它的封面,该如何实现

可以通过在 HTML 中使用 JavaScript 来实现鼠标悬停在字母上时显示对应的图片。这里是你可以尝试的修改:

  1. 首先,在 <head> 标签中添加一个 <script> 标签来定义 JavaScript 函数。
     <script>
            // 定义显示图片的函数
            function showImage(bookTitle) {
                // 获取对应书籍的图片路径
                var imagePath = '';
    
                switch (bookTitle) {
                    case '活着':
                        imagePath = '/bookimages/huozhe.png'; // 替换为对应图片的路径
                        break;
                    case '疯人说':
                        imagePath = '/bookimages/fengrenshuo.png'; // 替换为对应图片的路径
                        break;
                    // 添加更多书籍的图片路径
                    // case '书籍名称':
                    //     imagePath = '对应的图片路径';
                    //     break;
                    default:
                        // 如果没有对应的图片路径,则不显示图片
                        imagePath = '/bookimages/manhua1.jpg';
                        return;
                }
    
                // 获取图片元素并设置图片路径
                var imgElement = document.getElementById('hoverImage');
                imgElement.src = imagePath;
    
                // 显示图片
                imgElement.style.display = 'block';
            }
    
            // 定义隐藏图片的函数
            function hideImage() {
                // 获取图片元素并隐藏
                document.getElementById('hoverImage').style.display = 'none';
            }
        </script>
  2. 接下来,在书籍列表中的每个书名周围添加 <span> 标签,并为每个 <span> 标签添加 onmouseover 和 onmouseout 事件来调用 JavaScript 函数。
    <div id="btopleft">
        <br />
        <span onmouseover="showImage('活着')" onmouseout="hideImage()">活着</span>
        <span onmouseover="showImage('疯人说')" onmouseout="hideImage()">疯人说</span>
        <!-- 添加更多书籍名称 -->
    </div>
    
  3. 最后,在 HTML 页面的适当位置添加一个 <img> 标签,用于显示悬停在书名上时显示的图片。
<img id="hoverImage" src="" style="display: none; width: 100px; height: 150px;" />

这样,当鼠标悬停在书名上时,对应的图片就会显示出来。记得替换书籍名称和图片路径为实际使用的值。

6、显示封面时在某个区域,而不是最顶端,该如何实现

只需要将第5个问题中的下面这句话放到想要显示图片的位置即可。

<img id="hoverImage" src="" style="display: none; width: 100px; height: 150px;" />

 今天就先这样吧,明天实现书籍的阅读,书籍的管理操作。

待解决问题

?想实现不止鼠标滑过就显示图片,初始化状态下也可以显示图片,且每个图片还会自动变化,该如何实现

?我想要实现跳转的是一个界面,只是编号不同,该怎么实现呢?(几种不同的书籍,好像可以通过UserControl实现。)

?不支持MasterPageFile="~/MasterPage.master"吗?为什么

 ?2登录界面加个会话,不然运行的时候可以直接在地址栏输入跳转到阅读界面

?3如果已经登陆了账号,如何在个人信息管理的时候将用户名和密码显示在上面,而不是自己随机输入呢?post和get方法可以实现吗。

 ?4如何使得DropDownList中的某个选择还能继续向下选

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/592169.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第25天 | 216.组合总和III、17.电话号码的字母组合

代码随想录算法训练营第25天 | 216.组合总和III、17.电话号码的字母组合 自己看到题目的第一想法看完代码随想录之后的想法 链接: 216.组合总和III 链接: 17.电话号码的字母组合 自己看到题目的第一想法 216.组合总和III&#xff1a;递归函数终止条件为搜索得到的数相加为n&…

【架构系列】RabbitMQ应用场景及在实际项目中如何搭建可靠的RabbitMQ架构体系

作者:后端小肥肠 创作不易&#xff0c;未经允许禁止转载。 1. 前言 RabbitMQ&#xff0c;作为一款高性能、可靠的消息队列软件&#xff0c;已经成为许多企业和开发团队的首选之一。它的灵活性和可扩展性使得它适用于各种应用场景&#xff0c;从简单的任务队列到复杂的分布式系统…

阿里低代码引擎学习记录

官网 一、关于设计器 1、从设计器入手进行低代码开发 设计器就是我们用拖拉拽的方法&#xff0c;配合少量代码进行页面或者应用开发的在线工具。 阿里官方提供了以下八个不同类型的设计器Demo&#xff1a; 综合场景Demo&#xff08;各项能力相对完整&#xff0c;使用Fusion…

【前端项目——分页器】手写分页器实现(JS / React)

组件介绍 用了两种方式实现&#xff0c;注释详细~ 可能代码写的不够简洁&#xff0c;见谅&#x1f641; 1. 包含内容显示的分页器 网上看了很多实现&#xff0c;很多只有分页器部分&#xff0c;没和内容显示联动。 因此我增加了模拟content的显示&#xff0c;这里模拟了32条数…

Python数据分析案例44——基于模态分解和深度学习的电负荷量预测(VMD+BiGRU+注意力)

案例背景 承接之前的案例&#xff0c;说要做模态分解加神经网络的模型的&#xff0c;前面纯神经网络的缝合模型参考数据分析案例41和数据分析案例42。 虽然我自己基于各种循环神经网络做时间序列的预测已经做烂了.....但是还是会有很多刚读研究生或者是别的领域过来的小白来问…

Monorepo(单体仓库)与MultiRepo(多仓库): Monorepo 单体仓库开发策略与实践指南

&#x1f31f; 引言 在软件开发的浩瀚宇宙里&#xff0c;选择合适的代码管理方式是构建高效开发环境的关键一步。今天&#xff0c;我们将深入探讨两大策略——Monorepo&#xff08;单体仓库&#xff09;与MultiRepo&#xff08;多仓库&#xff09;&#xff0c;并通过使用现代化…

Vue3 + Vite + TypeScript + Element-Plus创建管理系统项目

官方文档 Vue3官网 Vite官方中文文档 创建项目 使用npm命令创建项目&#xff1a; npm create vitelatest输入项目名称&#xff1a; ? Project name:项目名选择vue&#xff1a; ? Select a framework: - Use arrow-keys. Return to submit.Vanilla > VueReactPrea…

【网站项目】木里风景文化管理平台

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

CSS精灵图、字体图标、HTML5新增属性、界面样式和网站 favicon 图标

精灵图 为什么要使用精灵图 一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁地接收和发送请求图片&#xff0c;造成服务器请求压力过大&#xff0c;这将大大降低页面的加载速度,因此&#xff0c;为了有效地减少服务…

JAVA基础|常用API-JDK8之前传统的日期,时间

一. Date &#xff08;一&#xff09;说明 代表的是日期和时间 &#xff08;二&#xff09;常用的用法 构造器说明public Date()创建一个Date对象&#xff0c;代表的是系统当前此刻日期时间public Date(long time)把时间毫秒值转换成Date日期对象 常见方法说明public long …

算法提高之潜水员

算法提高之潜水员 核心思想&#xff1a;二维01背包 两个容量v1v2注意状态计算时j和p可以<各自的v #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 1010,M 80,K 22;int f[K][M];int k,V1,V2;int main(){ci…

FloodFill-----洪水灌溉算法(DFS例题详解)

目录 一.图像渲染&#xff1a; 代码详解&#xff1a; 二.岛屿数量&#xff1a; 代码详解&#xff1a; 三.岛屿的最大面积&#xff1a; 代码详解&#xff1a; 四.被围绕的区域&#xff1a; 代码详解&#xff1a; 五.太平洋大西洋水流问题&#xff1a; 代码详解&#x…

锂电池充放电方式曲线

作为一种“化学能-电能”相互转换的能量装置&#xff0c;锂电池在使用过程中必然会进行充电和放电&#xff0c;合理的充放电方式既能减轻锂电池的损伤程度&#xff0c;又能充分发挥锂电池的性能&#xff0c;具有重要的应用价值。 如《GB/T 31484-2015&#xff1a;电动汽车用动…

非对称齿轮的跨棒距算的对不对

前面有一期咱们聊了非对称齿轮《》&#xff0c;非对称齿轮的齿厚测量一般都为跨棒距。最近研究了下计算方法&#xff0c;对计算结果的正确性做了下验证。 在MATLAB中编制了相关的计算程序&#xff1a; 齿轮的模数4&#xff0c;左侧分度圆压力角25&#xff0c;右侧分度圆压力角…

Sqli-labs第一关到第四关

目录 一&#xff0c;了解PHP源代码 二&#xff0c;破解第一关 2.1在了解完源码之后&#xff0c;我们重点看一下 2.2破解这道题表中有几列 2.3查看表中哪一列有回显 2.4查询库&#xff0c;表&#xff0c;列信息 三&#xff0c;总结 前提&#xff1a; 之所以把1234关…

MySQL基础_1.MySQL概述

文章目录 一、关系型数据库和非关系型数据库1.1 关系型&#xff08;RDBMS&#xff09;1.2 非关系型&#xff08;非RDBMS&#xff09; 二、常用的基础语句2.1 查看表的创建信息2.2 编码问题 一、关系型数据库和非关系型数据库 1.1 关系型&#xff08;RDBMS&#xff09; 是最古…

都上3D数字孪生了,2D的WEB组态和大屏可视化未来的发展在哪里?趋势是基于页面嵌套、蓝图连线等新技术,与功能业务应用融合

首先回顾下组态工具的发展史&#xff1a; 回顾发展史&#xff0c;WEB组态终于可以搭建业务系统了&#xff01;&#xff08;页面嵌套 节点编辑 WEB组态 上位机 大屏可视化 无代码 0代码 iframe nodered 蓝图&#xff09;-CSDN博客文章浏览阅读624次&#xff0c;点赞12次&#x…

ThreeJS:纹理的颜色空间

色彩空间Color Space 在ThreeJS中&#xff0c;纹理的colorSpace属性用于定义文里的颜色空间。 颜色空间是一个用于描述颜色的数学模型&#xff0c;在现实生活中&#xff0c;人眼可以观察到无数种颜色&#xff0c;而颜色空间就是用来描述这些颜色的一个方法&#xff0c;不同的颜…

C语言-自定义类型:结构体,枚举,联合

目录 一、结构体1.1 结构体变量的定义和初始化1.2 结构体内存对齐1.3 修改默认对齐数1.4 结构体传参 二、位段2.1 什么是位段2.2 位段的内存分配2.3 位段的跨平台问题2.4 位段的应用 三、枚举3.1 枚举类型的定义3.2 枚举的优点 四、联合&#xff08;共用体&#xff09;4.1 联合…

c#数据库: 9.删除和添加新字段/数据更新

先把原来数据表的sexy字段删除,然后重新在添加字段sexy,如果添加成功,sexy列的随机内容会更新.原数据表如下: using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Data.SqlClient; using System.Linq; using System.…