C#连接MySql数据库 (ASP.NET API)

main方法调用连接


using System;
using MySql.Data.MySqlClient;

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "server=localhost;database=***;username=***;password=****";
        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            //try
            //{
            //    connection.Open();
            //    // 执行数据库操作
            //    Console.WriteLine("连接成功!");
            //}
            //catch (MySqlException ex)
            //{
            //    Console.WriteLine("数据库连接失败: " + ex.Message);
            //}
            try
            {
                connection.Open();
                string query = "SELECT * FROM aaa";
                MySqlCommand cmd = new MySqlCommand(query, connection);
                MySqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    Console.WriteLine(reader["SHORI_NEN"].ToString());
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            connection.Close();
        }
    }
}

上面是练习 下面是api重点哦

1.Program.cs 文件添加
添加对配置文件的引用  
//builder.Configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

配置连接字符串  
//var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");

添加数据库上下文服务  
//builder.Services.AddDbContext<StudentContext>(options =>
//    options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString))
//);

或者

builder.Services.AddDbContext<StudentContext>(options =>
  options.UseMySql(builder.Configuration.GetConnectionString("DefaultConnection"), new MySqlServerVersion(new Version())));

主要是引入json文件

2.appsettings.json

  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;database=****;username=*****;password=******"
  },

Program里的“DefaultConnection”要和json一致哦

这时候就已经配置好连接了

3.新建Moudels 文件夹

创建学生Student

namespace TodoApi.Models
{
    public class Student
    {
        [Key]
        public int Id { get; set; }

//大小写都可以  带下划线的需要和数据库一致  也可以配置(自己百度)
        public string Name { get; set; } = String.Empty;
        public string Age { get; set; } = String.Empty;
    }
}

数据库记得建表

CREATE TABLE `student` (
  `Id` int NOT NULL COMMENT 'OID',
  `Name` varchar(2) NOT NULL COMMENT '名称',
  `Age` varchar(1) NOT NULL COMMENT '年龄'

4.创建StudentContext文件

using Microsoft.EntityFrameworkCore;
using WebApplication777.Models;

namespace TodoApi.Models
{
 
        public class StudentContext : DbContext
        {
            public StudentContext(DbContextOptions<StudentContext> options) : base(options)
            {
            }

            public DbSet<Student> Students { get; set; }
            public DbSet<MsgMst> MsgMsts { get; set; }

//OnModelCreating   ToTable为了映射数据库

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {

//entity(自己的表) ToTable (填写数据库的名字)
            modelBuilder.Entity<Student>().ToTable("student");
            modelBuilder.Entity<MsgMst>().ToTable("msg_mst");
        }
     
    }
}

5.controller

建立StudentController

using Microsoft.AspNetCore.Mvc;
using TodoApi.Models;
using WebApplication777.Models;


namespace TodoApi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class StudentController : ControllerBase
    {
        private readonly StudentContext _context;

        public StudentController(StudentContext context)
        {
            _context = context;
        }

        [HttpGet("{id}")]
        public async Task<ActionResult<Student>> Get(int id)
        {
            var studentsId = await _context.Students.FindAsync(id);

            if (studentsId == null)
            {
                return NotFound();
            }

            return studentsId;
        }
    }

 }

这时候就可以查询数据库啦

记得点赞哈 

第一次学c# 


 

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

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

相关文章

ABAP ZCL_EXCEL 实际用的案例 对账单

ABAP ZCL_EXCEL 实际用的案例 FORM GETITEMSANDOUTPUT USING PGS_HEAD TYPE GSHEAD.DATA:FILENAME TYPE STRING.DATA:LKUNNR TYPE KNA1-KUNNR.DATA:PROW TYPE I.DATA:LSDATE TYPE STRING.DATA:SUMXSJE TYPE DMBTR,ZYMYE TYPE DMBTR, "月末余额SUMBYXSYE TYPE DMBT…

全新神经网络架构KAN——本文用于学习与探索

论文地址&#xff1a;https://arxiv.org/pdf/2404.19756 Github&#xff1a;GitHub - KindXiaoming/pykan: Kolmogorov Arnold Networks 文档说明&#xff1a;Welcome to Kolmogorov Arnold Network (KAN) documentation! — Kolmogorov Arnold Network documentation 本文仅…

Java 反射动态代理

反射 Java反射是一种强大的编程机制&#xff0c;它允许程序在运行时检查或修改对象和类的行为。具体来说&#xff0c;反射机制提供了以下功能&#xff1a; 类的动态加载&#xff1a;可以在运行时加载一个只知道名称的类&#xff0c;并创建该类的实例。获取类的详细信息&#…

二手交易系统基于Uniapp+FastAdmin+ThinkPHP(源码搭建/上线/运营/售后/更新)

​一款基于UniappFastAdminThinkPHP开发的二手交易系统&#xff0c;卖家可以发布二手信息&#xff0c;买家可以在线询价&#xff0c;支持在线聊天(高级授权)&#xff0c;在线购买支付&#xff0c;支持发布高价回收(高级授权)信息。自带社交板块&#xff0c;用户可以发布帖子、加…

Prompt|Kimi高阶技巧,99%的人都不知道

大家好&#xff0c;我是无界生长。 今天分享一条咒语&#xff0c;轻松让Kimi帮你生成流程图&#xff0c;学会了的话&#xff0c;点赞收藏起来吧&#xff01; 效果展示 我们演示一下让kimi帮忙绘制 关注微信公众号“无界生长”的流程图&#xff0c;最终效果图如下所示 效果还不…

针对 % 号 | 引起的 不安全情况

把网站开放的课程都检索下来了 一、情况1 org.apache.tomcat.util.http.Parameters processParameters 信息: Character decoding failed. Parameter [Mac] with value [%%%] has been ignored. Note that the name and value quoted here may be corrupted due to the failed…

Kubernetes Cluster IP,Node IP,Pod IP间通信原理解析

目录 1、Cluster IP2、Node IP3、NodePort4、Pod IP5、LoadBalancer6、三种IP间通信6.1、Pod IP 与 Pod IP 通信6.2、Pod IP 与 Cluster IP 通信6.3、Node IP 与 Pod IP 通信6.4、Node IP 与 Cluster IP 7、YAML 示例7.1、ClusterIP Service7.2、LoadBalancer Service 1、Clust…

数组元素翻倍C++

编写一个 C 程序&#xff0c;实现一个功能&#xff0c;即将数组中的每个元素值翻倍。程序应定义一个函数 doubleArray&#xff0c;该函数接收一个整数数组的指针和数组的大小&#xff0c;然后将数组中的每个元素都翻倍。 代码 #include <iostream>void doubleArray(int…

【笔记】Android MVNO APN 字段配置方法

Android APN配置针对虚拟运营商包含以下两个字段对卡进行匹配(除了MCC、MNC之外): Mvno TypeMvno Match Data在 APN 配置中,运营商使用MVNO=IMSI时,一般开头是mccmnc+prefix+[range],那么mccmnc和 prefix正常配置,后面range的可变范围直接用“xxxx”同等长度占位。 MVNO…

红帽为 Red Hat OpenShift AI 扩大与 Elasticsearch 向量数据库的合作

作者&#xff1a;来自 Elastic Aditya Tripathi 红帽和 Elastic 今天宣布开展合作&#xff0c;以便在 Red Hat OpenShift AI 上集成 Elasticsearch 向量数据库。 Red Hat OpenShift 用户现在可以通过红帽生态系统目录实施 Elasticsearch 以进行向量搜索和检索增强生成 (RAG) 应…

商机来了你能抓住吗?2024新商机!2024创业新风口!2024创业项目小成本!2024创业干什么最赚钱?

19世纪末&#xff0c;美国加利福尼亚州发现了黄金&#xff0c;出现了淘金热。有一位17岁的少年来到加州&#xff0c;是想加入淘金者的队伍&#xff0c;可看到金子没那么好淘&#xff0c;淘金的人很野蛮&#xff0c;他很害怕。这时&#xff0c;他看到淘金人在炎热的天气下干活口…

pytest 数据驱动

pytest 数据驱动 1.pytest 如何收集到用例的&#xff1f; 2.pytest 如何把 python 代码&#xff0c;转换成 pytest 测试用例&#xff08;又称 item&#xff09; &#xff1f; pytest如何做到收集到用例的&#xff1f; conftest编写以下 hook 函数&#xff1a; conftest.py de…

C++笔试强训day16

目录 1.字符串替换 2.神奇数 3.DNA序列 1.字符串替换 链接 简单的遍历替换即可&#xff1a; class Solution { public:string formatString(string str, vector<char>& arg) {string ret;int k 0;for (int i 0; i < str.size(); i){if (str[i] %){ret arg…

Windows10搭建GPU版Darknet—yolov4—VS2022+CUDA+CUDNN(亲测有效)

1 VS2019安装 网址&#xff1a;Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 下载完成之后双击.exe文件 步骤严格如下安装 默认语音包为中文&#xff08;简体&#xff09; 安装位置可以自行选择&#xff0c;完成以后就可以点击安装了。 安装完毕以后需要重启…

如何解决 IPA 打包过程中的 “Invalid Bundle Structure“ 错误

哈喽&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;咱们行业内的应该都知道&#xff0c;在开发 iOS 应用时&#xff0c;将应用打包成 IPA 文件是常见的步骤之一。最近很多小伙伴们说在打包过程中&#xff0c;有时会遇到 "Invalid Bundle Structure&qu…

464. 我能赢吗

464. 我能赢吗 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;_464我能赢吗_记忆化dp 错误经验吸取 原题链接&#xff1a; 464. 我能赢吗 https://leetcode.cn/problems/can-i-win/description/ 完成情况&#xff1a; 解题思路&#x…

【Go】Go Swagger 生成和转 openapi 3.0.3

本文档主要描述在 gin 框架下用 gin-swagger 生成 swagger.json 的内容&#xff0c;中间猜的坑。以及&#xff0c;如何把 swagger 2.0 转成 openapi 3.0.3 下面操作均在项目根目录下执行 生成 swagger 2.0 import swagger go get -u github.com/swaggo/gin-swagger go get …

简述java中常见的运行时异常以及如何捕获和处理异常

一、在Java中&#xff0c;常见的运行时异常&#xff08;RuntimeException&#xff09;包括以下几种&#xff1a; NullPointerException&#xff1a;当应用程序试图访问空对象时&#xff0c;会抛出此异常。简单地说&#xff0c;就是调用了未经初始化的对象或者是不存在的对象。…

vue中this.$emit(“update:xx“,value)和xx.sync的用法

只做记录与讲解特别需要注意的地方 父组件 <hello-world :message.sync"originStr" /> 子组件 <button click"this.$emit("update:message", "Hello World");">兄弟点我</button>注意 父组件的message必须与子组件…

兴趣的转变

40多了&#xff0c;对事物的兴趣也变化了不少。之前的看过一些政兵文科的内容&#xff0c;现在也很少看了&#xff0c;前一段还关注一些华为手机&#xff0c;新能源汽车之类的新闻&#xff0c;看多了也觉得无趣了。 在想关注一个对自己比较有意义的内容&#xff0c;可以让自个沉…