C#-前后端分离连接mysql数据库封装接口

news2024/10/3 10:44:04

C#是世界上最好的语言

新建项目 如下图所示选择框红的项目
在这里插入图片描述
然后新建 文件夹 Common 并新建类文件 名字任意 文件内容如下 因为要连接的是mysql数据库 所以需要安装 MySql.Data.MySqlClient 依赖;


using MySql.Data.MySqlClient;
using System.Data;



namespace WebApplication1.Common
{
    public class SqlHelp
    {
        //public static string ConStr { get; set; }
        public static DataTable ExecuteTable(string cmdText)
        {
            using (MySqlConnection con = new MySqlConnection("server=127.0.0.1;database=mynodedata;username=root;password=123456;"))
            {
                con.Open();
                MySqlCommand cmd = new MySqlCommand(cmdText, con);
                MySqlDataAdapter sda = new MySqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                sda.Fill(ds);
                return ds.Tables[0];
                // 取数据
            }
        }
    }
}

然后新建 Models 文件夹 并新建类 类名任意 文件内容如下

using WebApplication1.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Numerics;

namespace WebApplication1.Models
{
    public class user
    {
        public Int64 id { get; set; }
        public String name { get; set; }
        public String password { get; set; }
        public String loginname { get; set; }
        public String mobie { get; set; }
        public String role { get; set; }

        public static List<user> GetTextList()
        {
          
            DataTable dt = SqlHelp.ExecuteTable("select * from user");
            List<user> scc1 = new List<user>();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                scc1.Add(ToModel(dt.Rows[i]));
            }
            Console.WriteLine(1111);

            return scc1;
        }

        private static user ToModel(DataRow dr)
        {
            // 下面后面的数据都是取自数据库
            user scc = new user();
            scc.id = (Int64)dr["id"];
            scc.name = dr["name"].ToString();
            scc.password = dr["password"].ToString();
            scc.loginname = dr["loginname"].ToString();
            scc.mobie = dr["mobie"].ToString();
            scc.role = dr["role"].ToString();
            return scc;
        }
    }
}

然后在系统自带的Controllers文件夹上新建 api控制类 文件代码如下

using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    [EnableCors("any")]// 添加 跨域名【在同一台电脑上面端口不一样也属于跨域】
    [Route("api/[controller]/[action]")]// 后面添加 /[action] 下面是具体写到方法名
    [ApiController]
    public class usermyController : ControllerBase
    {
        [HttpGet]
        public List<user> GetTest01()
        {
            List<user> scc01 = user.GetTextList();
            return scc01;
        }
    }
}

然后需要改一点系统自带的文件Program.cs 标红的部分代码添加进去
在这里插入图片描述
代码如下

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddCors(o => o.AddPolicy("any", p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()));
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();
app.UseRouting();

app.UseCors("any");
app.UseAuthorization();

app.UseEndpoints(endpoints =>{
    endpoints.MapControllers();
});

app.Run();

然后运行项目 API 文档和测试文件

在这里插入图片描述

在这里插入图片描述
跨域测试
在这里插入图片描述

C#是世界上最好的语言

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git用法总结

以gitee为例&#xff0c;GitHub也可参考本文 创建远程仓库 在自己的gitee主页 创建本地仓库 在文件夹下&#xff0c;右键→git bash here git init添加gitignore vi .gitignoregitignore里的内容根据自己实际情况设置&#xff0c;这里举个例子 # #开头的是注释 # Prer…

【LeetCode】每日一题 2024_1_25 计算 K 置位下标对应元素的和(位运算/调库)

文章目录 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01;题目&#xff1a;计算 K 置位下标对应元素的和题目描述代码与解题思路 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 今天状态调整正式结束&#xff0c;寒假学习正式开始。 题目&…

编程笔记 html5cssjs 056 CSS不透明度

编程笔记 html5&css&js 056 CSS不透明度 一、CSS 不透明度 / 透明度二、使用 RGBA 的透明度三、透明盒中的文本小结 不透明度/透明度。利用透明度可以提高页面的层次效果。 一、CSS 不透明度 / 透明度 opacity 属性指定元素的不透明度/透明度。 opacity 属性通常与 :h…

Python学习07—字符串类型及操作

一、字符串类型的表示 字符串是由0个或多个字符组成的有序序列。字符串可由一对单引号或一对双引号表示。由于字符串是有序序列&#xff0c;因此&#xff0c;可以对其中的字符进行索引&#xff0c;且在索引时&#xff0c;字符是从0开始编号。 字符串有两类和四种表示方式&…

简述云原生基础定义及关键技术

云原生是什么 云原生是面向“云”而设计的应用,因此技术部分依赖于传统云计算的 3 层概念,基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。 例如,敏捷的不可变基础设施交付类似于 IaaS,用来提供计算网络存储等基础资源,这些资源是可编程且不可变的,直…

关于MySQL的基本查询(多表查询等)

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下&#xff1a; CREATE…

动态规划之买卖股票问题(篇二)(买卖股票的最佳时机)

本篇博客主要讲解123.买卖股票的最佳时机III和188.买卖股票的最佳时机IV&#xff0c;是上篇博客中动态规划之买卖股票问题&#xff08;篇一&#xff09;&#xff08;买卖股票的最佳时机&#xff09;股票问题的进阶。 123.买卖股票的最佳时机III 题目&#xff1a; 给定一个数…

11k+ star 一款不错的笔记leanote安装教程

特点 支持普通模式 支持markdown模式 支持搜索 安装教程 1.安装mongodb 1.1.下载 #下载 cd /opt wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.1.tgz 1.2解压 tar -xvf mongodb-linux-x86_64-3.0.1.tgz 1.3配置mongodb环境变量 vim /etc/profile 增…

【软件测试】学习笔记-构建并执行 JMeter 脚本的正确姿势

有些团队在组建之初往往并没有配置性能测试人员&#xff0c;后来随着公司业务体量的上升&#xff0c;开始有了性能测试的需求&#xff0c;很多公司为了节约成本会在业务测试团队里选一些技术能力不错的同学进行性能测试&#xff0c;但这些同学也是摸着石头过河。他们会去网上寻…

Go语言指针变量

1. 指针变量 区别于C/C中的指针&#xff0c;Go语言中的指针不能进行偏移和运算&#xff0c;是安全指针。 Go语言中的指针3个概念&#xff1a;指针地址、指针类型和指针取值。 1.1. Go语言中的指针 Go语言中的函数传参都是值拷贝&#xff0c;当我们想要修改某个变量的时候&a…

zuul网关

zuul网关 zuul自定义过滤器hystrix和ribbon时间RibbonAutoConfiguration自动配置FeignAutoConfiguration自动配置RibbonEurekaAutoConfigurationSendErrorFilter过滤器EnableZuulServerHasFeatures EnableZuulProxy zuul自定义过滤器 继承ZuulFilter类&#xff0c;实现其方法f…

【论文笔记】Learning Deconvolution Network for Semantic Segmentation

重要说明&#xff1a;严格来说&#xff0c;论文所指的反卷积并不是真正的 deconvolution network 。 关于 deconvolution network 的详细介绍&#xff0c;请参考另一篇博客&#xff1a;什么是Deconvolutional Network&#xff1f; 一、参考资料 Learning Deconvolution Netwo…

十分钟搭建本地Linux开发运行环境

十分钟搭建本地开运行环境 linux环境请参考&#xff1a;5分钟搭建本地linux开发环境 环境&#xff1a;宝塔、Jdk、Mysql、Redis 1、宝塔&#xff1a; 官网地址&#xff1a;宝塔官网 yum install -y wget && wget -O install.sh https://download.bt.cn/install/in…

图形化方式利用脚手架创建Vue项目

图形化方式利用脚手架创建Vue项目 1 安装node.js&#xff08;附带安装npm&#xff09;安装v14.3.0版本 查看安装版本 node -v 2 安装cnpm npm install -g cnpm 查看安装版本 cnpm -v 以管理员身份运行powershell&#xff0c;运行 set-ExecutionPolicy RemoteSigned 3…

【VSAN数据恢复】VSAN数据重构迁移失败的数据恢复案例

VSAN简介&#xff1a; VSAN存储是一个对象存储&#xff0c;以文件系统呈现给在vSphere主机上。这个对象存储服务会从VSAN集群中的每台主机上加载卷&#xff0c;将卷展现为单一的、在所有节点上都可见的分布式共享数据存储。 对于虚拟机来说&#xff0c;只有一个数据存储&#x…

Modern C++ std::shared_ptr的实现原理

shared_ptr的UML图 注意:这是Linux上GCC 8.5.0的实现版本 先看下它的继承关系。 shared_ptr里面的数据成员 有了上面的UML图,可能还没有一个直观的认识,下面我们把这些成员打印出来。 当然得先写个小小的程序: $ cat shared_ptr.cpp #include <memory> #include…

单元测试——题目十二

目录 题目要求: 定义类 测试类 题目要求: 根据下列流程图编写程序实现相应处理,执行j=10*x-y返回文字“j1=:”和计算值,执行j=(x-y)*(10⁵%7)返回文字“j2=:”和计算值,执行j=y*log(x+10)返回文字“j3=:”和计算值。 编写程序代码,使用JUnit框架编写测试类对编写的…

【开源】基于JAVA语言的实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

RHCE项目:使用LNMP搭建私有云存储

目录 一、准备工作 1、关闭防火墙、安全软件 2、搭建LNMP环境 3、上传软件 4、设置nextcloud安装命令权限 二、数据库 1、设置数据库 2、重启数据库 三、配置nginx 四、安装nextcloud 五、内网穿透 1、创建内网映射 2、linux系统安装花生壳客户端 3、重新打开浏览…

《幻兽帕鲁》爆火,玩家在阿里云上部署联机服务器:全程仅3分钟

《幻兽帕鲁》大卖800万份&#xff0c;玩家纷纷上阿里云光速搭建联机服务器 《幻兽帕鲁》爆火&#xff0c;玩家在阿里云上部署联机服务器&#xff1a;全程仅3分钟 1月26日消息&#xff0c;生存类游戏《幻兽帕鲁》异常火爆&#xff0c;发售仅6天销量就突破了800万份&#xff0c;在…