当些日子在聊天时,我又抛出了:语言只是工具,重要的是思想。软件的质量控制并不是靠语言,而是靠规范的论调。显然,对方表示质疑。为此,走上了 VB.net 的学习之路。
LINQ
官方如是说:LINQ to SQL 是.NET Framework 版本 3.5,它提供用于管理关系数据作为对象的运行时基础结构的组件。
可见,它是 3.5 开始有的新特性,用来管理关系数据的。
为什么要学习 LINQ 呢?
我们先看下当前项目的示例代码(以登录为例):
db.connectDB()
If PasswordTextBox.Text = "" Then
MsgBox("用户名或密码不能为空!", 48, "提示")
PasswordTextBox.Focus()
Exit Sub
End If
str = "select f_zuidi,f_renyuan_id,f_jiemian from t_renyuan where f_zuofei=0 and f_xingming='" + CStr(ComboBox2.SelectedValue) + "'and (f_mima='" + PasswordTextBox.Text + "'"+" or 'xxxxx'='"+ PasswordTextBox.Text +"')"
ds = db.readrecord(str)
If ds.Tables(0).Rows.Count = 0 Then
PasswordTextBox.Text = ""MsgBox(" 用户名称或密码错误, 请重新登录!", 48," 警告 ")
db.closeDB()
PasswordTextBox.Focus()
Exit Sub
Else
过程很简单,先连接数据库,如果密码为空,则提示。否则的话,去进行查库处理。如果没有查看到记录,则报错。否则的话,认为用户登录成功。
但这种代码,我们认为是无法控制其质量的,原因就是过多的出现了字符串(请忽略掉其它问题),试想一下。如果有一天数据表的某个字段名变更了(由 f_zuifi 变更为 zuifi),我们还需要来到这个文件 f_zuifi
这个字符串,来手动的进行变更。而编译器不会给我们任何提示。如果仅仅有 1 个文件还可以,但随着项目的规模的增加,最后数据表字段的变更,就会变得不可控制。
如何使用 LINQ
以前一直对微软有排斥的心理,主要是由于使用上 MAC 以后,感觉 MAC 的稳定性真的是做的太好了。当近距离接触了微软以后,才发现其文档的友好性。比如其官方竟然还有相关的视频教程:https://docs.microsoft.com/zh…。文档的确够多,够完善。推荐文档:https://docs.microsoft.com/zh…
其实官方文档真的说的够完善了,在具体的使用过程中,在执行 项目 -> 添加组件
时,未找到 LINQ to SQL 类
。以时,我们需要来到 工具 -> 获取工具与功能
,并选择单个组件中的 LINQ to SQL 工具.
再然后就有了。
数据库信息存哪了呢?
在使用 LINQ 成功的查询后,我开始思索一个问题:当前是开发环境,如果是生产环境的数据库地址、端口、用户名、密码、数据库名称与我配置的不一样,我怎么修改呢?于是,查看数据源的代码:
Public Sub New()
MyBase.New(Global.stjl.My.MySettings.Default.testConnectionString, mappingSource)
OnCreated
End Sub
发现其使用的是项目的 Settings
中的值。
Public ReadOnly Property testConnectionString() As String
Get
Return CType(Me("testConnectionString"),String)
End Get
End Property
获取的是 testConnectionString
这个字符串的配置信息。它竟然在这:
虽然还没有正式的发布过,但相信发布应用后这个值应该很容易修改吧。
结论
这给我了一个新的思路:一些关于项目配置的信息,我是否也应该放到这个文件中并且参考官方的调用方法进行调用呢?