今天就来聊聊我最近折腾*搞数据库那点事儿。也不是啥高深玩意儿,就是自己动手走一遍,记录下过程,免得以后忘。
准备工作
一上来,就得先琢磨用啥连数据库。我这边主要是用SQL Server,所以得先确保项目里引用和这两个东西。没它们,后面都白搭。要是你用的是别的数据库,比如Access,那可能就得引用之类的,这个得看情况。
连接数据库
接下来就是最头疼的连接字符串。这玩意儿格式得写对,服务器地址、数据库名、用啥登录(Windows验证还是用户名密码),一个都不能错。我一开始也在这卡半天,反复试才连上。搞定就用SqlConnection
对象把它存起来。
建好连接对象,下一步就是打开它。用SqlConnection
的Open()
方法。但最最重要的一点,用完一定一定要记得关掉!调用Close()
方法。不然连接一直占着,系统资源迟早给你耗光。我通常喜欢用Using
语句块,这样它能自动帮你关,省心不少,不容易忘。
执行命令
连接打开,就可以发号施令,就是执行SQL语句。这时候就轮到SqlCommand
上场。你想查数据(Select)、加数据(Insert)、改数据(Update)还是删数据(Delete),都得靠它。把你的SQL语句塞给它就行。
说到SQL语句,这里有个大坑要注意。千万别直接把用户输入的东西拼到SQL语句里!太危险,容易被人搞破坏(就是所谓的SQL注入)。正确的做法是用参数。用SqlCommand
的这类方法,把变量传进去,这样安全得多。虽然麻烦一点点,但绝对值得。
处理数据
命令准备好,就执行呗。如果是增删改这种不返回数据的,用ExecuteNonQuery()
。如果是查询,就要用ExecuteReader()
,它会返回一个SqlDataReader
对象。然后你就得一行一行去读这个DataReader
返回的结果,把需要的数据取出来用。
整体流程回顾
整个流程跑下来,大概就是:
- 准备连接字符串
- 创建
SqlConnection
- 打开连接(最好用
Using
) - 创建
SqlCommand
,写好SQL,加上参数! - 执行命令 (`ExecuteReader`或`ExecuteNonQuery`)
- 如果是查询,处理
SqlDataReader
返回的数据 - (
Using
会自动关连接,否则手动`Close()`)
说白,*操作数据库主要就是跟这几个对象打交道:SqlConnection
, SqlCommand
, SqlDataReader
, SqlParameter
。熟练也就那么回事儿。这是针对SQL Server的,要是连Access或者别的数据库,可能连接字符串写法不一样,用的类(比如OleDbConnection
)也可能不同,但大体思路是相通的。就是得多练,踩踩坑就明白。
这回实践下来,感觉虽然有点繁琐,但一步步走通还是挺有成就感的。分享出来,希望能帮到同样在摸索的朋友。