流氓の影

一个在学习泥潭中越陷越深的码畜

 

MySql数据库操作遇到的蛋疼二三事

最近使用ADO.net操作MySql遇到很多莫名其妙的异常及各种问题。。。。

 

问题1:连接字符串

 

Database='数据库名称';Data Source='数据库服务IP';User Id='用户名';Password='密码';charset='utf8';pooling=true

 

连接MySql数据库的通用字符串,其中Charset决定了数据库中的编码,这里我们使用了通用的utf8编码

 

问题2:数据库存储过程的建立及注意事项

一个标准的存储过程脚本建立

复制代码
Create Procedure PROC_CamLocationAdd
(
    P_BaseID Integer,
    P_Name   Varchar(200) charset 'utf8',
    P_DeviceID Integer,
    P_IsDeleted Integer
)

Begin

Insert Into cam_location (base_id,name,device_id,deleted) 
Values
(P_BaseID,P_Name,P_DeviceID,P_IsDeleted);

END
复制代码

 

注意:

1、Create Procedure 存储过程名() 无论存储过程是否存在参数 ()不可省略

2、MySql数据库中参数不需要使用@开头,也无法使用@开头

3、字符型参数 需要声明charset 如果不声明 轻则乱码 重则异常。 建议设计数据库时,保证每张表字段的编码方式相同

4、存储过程中执行的Sql语句 使用Begin End包含 表示为一个语句块

 

问题3:IF Else的使用

SQL中:

IF (条件) Begin

End

Else Begin

End

MySql中:

复制代码
/************方式1************/
IF (条件) Then

End IF;

/************方式2***********/
IF (条件) Then

Else

End IF;
/**********方式3************/
IF(条件) Then

Else IF

Else

End IF;
复制代码

 

问题4: 结束符

Sql中 每一条语句不需要任何结束符表示语句的结束

MySql中 每一条语句的结束 需要在末尾加上; 与C#相同

 

问题5:大小写

不区分大小写

 

问题6:使用Limit分页

MySq中支持Limit分页,形式为 Limit(Start,Length)

 

然而Limit不支持变量做为参数,因此使用的时候 需要拼接为Sql语句字符串,然后Execute

 

目前遇到的问题及汇总 就在这里

 

 

posted on   Manon_Loki  阅读(417)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

导航

统计

点击右上角即可分享
微信分享提示