SQL数据库操作步骤及代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章数据库高级编程
是为.NET框架而创建的,是对ADO(ActiveX Data Objects)对象模型的扩充。提供了一组数据访问服务的类,可用于对Microsoft SQL Server、Oracle等数据源的一致访问。模型分为.NET Data Provider(数据提供程序)和DataSet数据集(数据处理的核心)两大主要部分。
.NET数据提供程序提供了四个核心对象,分别是Connection、Command、DataReader 和DataAdapter对象。功能如表2-1所示。
表2-1 核心对象
2.1 SQL Server相关配置
在使用C#访问数据库之前,首先创建一个名为“chap2”的数据库,此数据库作为2.1节及2.2节中例题操作的默认数据库。然后创建数据表Products,表结构如表2-2所示。创建完毕后可录入初始化数据若干条。
表2-2 Products表表结构
机课的操作中出现问题较多的地方。
1.身份验证方式
SQL Server 2012在安装时默认是使用Windows验证方式的,但是安装过后用户可随时修改身份验证方式。
启动SQL Server 2012 Management Studio,在“连接到服务器”对话框中选择“
Windows身份验证”连接服务器,连接成功后,在窗体左侧的“对象资源管理器”中右键单击服务器实例节点,并在弹出的快捷菜单中选择“属性”菜单项,系统将弹出“服务器属性”窗体,切换至“安全性”选项卡,如图2-1所示。
图2-1 “服务器属性”对话框-“安全性”选项卡
在“服务器身份验证”部分选择“SQL Server和Windows身份验证模式”选项,并单击【确定】按钮。系统将提示需要重新启动SQL Server以使配置生效,如图2-2所示。
图2-2 系统提示框
右键单击“对象资源管理器”的服务器实例节点,在弹出的快捷菜单中选择“重新启动”菜单项,SQL Server将重新启动服务,重启成功后即可使用混合验证方式登录SQL Server 服务器。
2.添加登录账户
大部分初学者都习惯于使用SQL Server的系统管理员账号“sa”来登录数据库服务器,而在实际工作环境中使用sa账号登录服务器是不合理的。因为很多情况下系统的数据库是部署在租用的数据库服务器上的,此时数据库设计人员或编程人员都不可能具有sa账号的使用权限,因此在将身份验证方式修改为SQL Server和Windows混合验证后,需要为某应用程序创建一个专用的登录账户。其操作步骤描述如下。
(1)使用Windows身份验证登录SQL Server,在对象资源管理器中点击“安全性”节点前面的加号“+”,在展开后的“登录名”子节点上单击右键,如图2-3所示,并在弹出的快捷菜单中选择“新建登录名”选项。
图2-3 登录名节点的右键菜单
(2)系统弹出“登录名—新建”对话框中,如图2-4所示。首先在登录名输入框中填写需要创建的用户名,此处以“zd”为例;将身份验证方式选为“SQL Server 身份验证”,为新建账户设置密码为“123”,同时去除“强制实施密码策略”和“用户在下次登录时必须更改密码”选项;最后为账户选择默认数据库“chap2”。
图2-4 “登录名-新建”对话框“常规”选项卡
(3)服务器角色节点不予配置。有关SQL Server服务器角色请参考相关资料,此处不再详细介绍。
(4)在对话框左侧选项卡中选择“用户映射”节点,如图2-5所示,在“映射到此登录名的用户”列表中,勾选此前创建好的数据库“chap2”,在窗体右下方的“数据库角色成员身份”框里选择“db_Owner”,即数据库拥有者。
图2-5 “登录名-新建”对话框“用户映射”选项卡
(5)安全对象节点一般不予配置。
(6)在对话框左侧选项卡中选择“状态”节点,如图2-6所示,将“是否允许连接到数据库引擎”选项设为“授予”,同时将“登录”选项设为“启用”。以上各节点配置完成后单击【确定】按钮,即完成了对账户的创建工作。
图2-6 “登录名-新建”对话框“状态配置”选项卡
(7)新建账户完成后,重新连接SQL Server,如图2-7所示,选择SQL Server身份验证方式,输入前面设置的登录名“zd”及密码“123”,点击【连接】按钮,即可完成登录。
登录成功后在对象资源管理器中可看到服务器实例名后面显示的登录用户名,如图2-8所示。
图2-7 “连接到服务器”对话框图2-8 对象资源管理器
2.2 使用访问数据库
2.2.1 连接数据库
在对数据源进行操作之前,首先需建立到数据源的连接,可使用Connection对象显式创建到数据源的连接。
【例2-1】设计一个Windows应用程序,能通过“Windows验证“和“Windows和SQL Server混合验证”两种方式建立到数据库的连接。
图2-9 “连接数据库”窗体控件Tab顺序
实现过程如下。
(1)新建一Windows应用程序,命名为connection,将创建的默认窗体名更名为frmConnect,窗体的Text属性设置为“连接数据库”,界面设计如图2-9所示。frmConnect 窗体中的主要控件,按Tab键顺序,描述如表2-3所示。
表2-3 “连接数据库”窗体控件及说明
(2)主要程序代码
说明:①本节内所有例题代码均需引用System.Data.SqlClient命名空间,代码如下:
using System.Data.SqlClient; //添加对SQL Server数据访问对象的引用
后续例题不再逐一说明。
②由于篇幅所限,本节中所有例题的异常捕获代码都省略了,读者需自行添加获取控件输入及访问数据库等处的异常捕获代码。
双击【Windows验证】按钮,进入其Click事件处理函数,代码如下:
//Windows方式连接数据库
private void btnConnect1_Click(object sender, EventArgs e)
{
string strConn = "server=XP-4;database=chap2;integrated security=true"; //连接字符串
SqlConnection conn = new SqlConnection(strConn); //创建连接对象
conn.Open(); //打开连接
//如连接成功则弹出消息框提示
MessageBox.Show("数据库已通过集成验证方式连接成功", "连接状态对话框");
conn.Close(); //使用完毕后关闭数据库连接
}
双击【混合验证】按钮,进入其Click事件处理函数,填写代码如下。
//SQL Server + Windows方式连接数据库
private void btnConnect2_Click(object sender, EventArgs e)
{
string strConn = "server=XP-4.;database=chap2;uid=zd;pwd=123"; //连接字符串
SqlConnection conn = new SqlConnection(strConn); //创建连接对象
conn.Open(); //打开连接
//如连接成功则弹出消息框提示
MessageBox.Show("数据库已通过混合验证方式连接成功", "连接状态对话框");
conn.Close(); //使用完毕后关闭数据库连接
}
数据库连接字符串包含要连接的数据库的信息,如server属性指定数据库服务器名称,database属性指定数据库名称,使用Windows身份验证方式只需要给出server和database两个属性的值,并使用“integrated security=true”指定身份验证方式为Windows验证;当使用混合验证时则需要使用uid属性指定数据库账户、pwd属性指定该账号的密码。
说明:上例中的连接字符串中的用户名“zd”和密码“123”,是以本节“添加登录账户”的方式创建的,读者可自行修改为自己计算机的SQLServer登录名及密码。
运行程序,分别单击【Windows验证】和【混合验证】两个按钮,如连接成功,将分别弹出不同的连接状态对话框,如图2-10所示。
图2-10 连接状态对话框