idataparameter怎么用?这几个实用技巧要知道!

吉云

今儿个,咱来聊聊我在捣鼓数据库时遇到的一个玩意儿——IDataParameter。一开始我也没搞明白这是个后来一通实践,总算是摸清它的脾气。

初识 IDataParameter

记得那天,我正吭哧吭哧地写着代码,要往数据库里塞数据。本来,直接把数据拼到 SQL 语句里就完事,就像这样:

idataparameter怎么用?这几个实用技巧要知道!

int Id = 1;string Name = "老王";* = "insert into TUserLogin values("+Id+", '"+Name+"')";

可这么写,总觉得心里不踏实。万一这 Name 里头有啥特殊字符,或者以后 Id 也变成字符串,这不就乱套?而且这样写,代码看起来也乱糟糟的,不美观。

于是我就开始琢磨,有没有啥更好的法子。这时候,IDataParameter 就闪亮登场。

使用 IDataParameter

IDataParameter ,说白,就是一个接口。啥是接口?你可以把它想象成一个“约定”,它规定参数应该长啥样。具体的实现,还得靠各个数据库厂商自己来。比如,你要用 SQL Server,那就得用 SqlParameter;你要用 Oracle,那就得用 OracleParameter。不过不管用哪个,它们都得“遵守”IDataParameter 这个“约定”。

那咋用?也简单。我当时是这么干的:

idataparameter怎么用?这几个实用技巧要知道!

  1. 先创建几个参数对象。

IDataParameter[] parameters = new IDataParameter[] { new SqlParameter("@Id", 1), new SqlParameter("@Name", "老王") };

你看,这里我用 SqlParameter,因为我当时用的是 SQL Server。@Id@Name 是参数的名字,后面跟着的是参数的值。

    idataparameter怎么用?这几个实用技巧要知道!

  1. 把参数加到 Command 对象里。

这一步,我当时是直接在 SQL 语句里用参数名:

* = "insert into TUserLogin values(@Id, @Name)";

然后把创建好的 parameters 数组加进去:


foreach (IDataParameter parameter in parameters)

*(parameter);

这么一来,Command 对象就知道该怎么处理这些参数。

  1. 执行 SQL 语句。

这一步就没啥好说的,直接执行就完事。

一点小感悟

IDataParameter 之后,我感觉代码一下子清爽不少。再也不用担心数据里有特殊字符,也不用费劲巴拉地去拼接 SQL 语句。而且这样做还有一个好处,就是可以防止 SQL 注入攻击。啥是 SQL 注入攻击?这个说来话长,以后有机会再细聊。

这只是 IDataParameter 的一种用法。我还看到有人直接在创建 DataBase 时把参数传进去,像这样:

DataBase db = new DataBase();SqlParameter[] prams = { *("@id",...) };

不过我当时没这么用,我觉得先创建参数对象,再加到 Command 对象里,这样更清楚些。

IDataParameter 这玩意儿,还是挺有用的。掌握它,写起代码来,心里更踏实,代码也更漂亮。今儿个就先聊到这儿,以后再遇到啥有意思的东西,再跟大家分享!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]