Mysql+IIS+三层架构创建网站遇到的过程总结

2024-09-05 02:18

本文主要是介绍Mysql+IIS+三层架构创建网站遇到的过程总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.三层架构的创建

1)添加新项,添加类库:实体,业务逻辑,数据库访问,并将新创建的类库添加到网站的引用。

2)为实体类库设置属性,并设置set和get方法。

3)为数据库访问类库新建Connection和DataService类,其中Connection类中包含了数据库连接字符串成员变量以及设置方法,DataService类是数据库操作类,包含了各种数据库的操作,在DataService类库中新建类SQLHelper类,SQLHelper类实现了数据库的增删改查的基本操作。

注:SQLHelper类的函数的参数的形式,一般为要执行的sql语句,以及包含了sql语句中参数的参数值的sqlparameters数组,在SQLHelper类中的函数中,将sqlparameter数组中的参数值赋值到sql语句中的形参中构造真正的sql语句

注:sqlparameter的用法:

       1)strSql = "select * from database where id=@id"

           1.1)SqlParameter para = new SqlParameter("@id",SqlDbType.Int,10),有三个参数,@id是sql语句中的形参,形参的数据类型,长度

           1.2)SqlParameter[]  para = new SqlParameter{         new SqlParameter("@id",SqlDbType.Int,10),new SqlParameter("@name",SqlDbType.String,10).....                    }

                   para[0].Value = ...,para[1].Value = ...

       cmd.Parameter.AddRange(para);                   //为sql语句中的形参赋值

4)SQLHelper类中的函数的返回值设为DataSet或者table,然后在DataService类库从数据源中取出数据,并赋值给实体的相应属性,然后返回已经赋值过的实体。从DataSet对象中取出数据的过程:

for(int i = 0;i < ds.Table[0].Rows; ++i){//User为实体集的实例User[i].username = ds.Table[0].Row[i][2].ToString();
}                
遇到的问题:

1)Mysql服务无法启动。解决:运行MysqlInstaller,修复并重启Mysql服务

2)为项目添加了对类库的引用,却依然提示缺少using。解决:出现这种问题的原因,是因为尚未生成解决方案就直接在浏览器中查看,先生成解决方案然后再查看。若出现对代码等的修改,也要先生成解决方案再查看结果。

3)在浏览器中查看网页的时候提示错误:You have an error mysql synax。。。解决:sql语句语法错误,修改sql语句构造的

二,返回受影响的行数

SqlConnection con = new SqlConnection("连接字符串");con.Open();SqlCommand cmd = new SqlCommand("select * from Table where ..",con); SqlDataApdater da=new SqlDataApdater (cmd);DataTable dt=new DataTable();da.Fill(dt);//影响的行数int count=dt.Rows.Count;con.Close();

//

遇到的问题:

1)在查询并返回表的前n条记录的时候,一直提示sql语句语法错误。解决:Mysql和SqlServer在查询前N条记录的时候语法不相同,若是Mysql,语法不是select top n * from table

2)将查询到的数据保存到DataReader对象中后,在从DataReader对象中读取数据的时候,如果超出数据的记录数会提示错误,如select top 10 * from table但是table中只有5条记录,这样在读取数据的时候,读取到第六条的时候会报错。解决:换成DataSet对象来保存数据,DataSet对象有Rows.Count成员可以得到记录的总数

3)在讲数据库中的float类型数据取出并复制给对象的成员变量的时候,如float.parse(dataset.Tables[0].Rows[0][0].ToString())会报错,原因是若数据库中该条记录对应的该列的数据为NULL,在转换为float类型的时候会报错


这篇关于Mysql+IIS+三层架构创建网站遇到的过程总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137689

相关文章

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作