流氓の影

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

 

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 2012-09-17 17:24  Manon_Loki  阅读(410)  评论(0编辑  收藏  举报

导航