当前位置:文档之家› SQL数据库操作步骤及代码

SQL数据库操作步骤及代码

第2章数据库高级编程ADO、NET就是为、NET框架而创建的,就是对ADO(ActiveX Data Objects)对象模型的扩充。

ADO、NET提供了一组数据访问服务的类,可用于对Microsoft SQL Server、Oracle等数据源的一致访问。

ADO、NET模型分为、NET Data Provider(数据提供程序)与DataSet数据集(数据处理的核心)两大主要部分。

、NET数据提供程序提供了四个核心对象,分别就是Connection、Command、DataReader 与DataAdapter对象。

功能如表2-1所示。

表2-1 ADO、NET核心对象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 使用ADO、NET访问数据库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 “连接数据库”窗体控件及说明Tab顺序控件类型控件名称说明主要属性属性名属性值Button btnConnect1 Windows身份验证方式连接数据库Text Windows验证1 btnConnect2 混合验证方式连接数据库Text 混合验证(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 连接状态对话框2、2、2 对数据库进行添加、修改及删除操作在创建好到数据库的连接之后,可以使用Command对象对数据库进行更新操作。

【例2-2】设计一个Windows应用程序,能实现对数据库表的添加、修改及删除操作。

实现过程:(1)新建一Windows应用程序,命名为operateData,将创建的默认窗体名更名为frmCommand,窗体的Text属性设置为“对数据库执行添加、修改及删除操作”,界面设计如图2-11所示。

frmCommand窗体中的主要控件,按Tab键顺序,描述如表2-4所示。

图2-11 “对数据库进行添加、修改及删除操作”窗体Tab顺序视图表2-4 “对数据库执行添加、修改及删除操作”窗体控件及说明Tab顺序控件类型控件名称说明主要属性属性名属性值Button btnInsert 向数据库表添加一条记录Text 添加1 btnUpdate 修改数据库表中的记录Text 修改2 btnDelete 删除数据库表中的记录Text 删除(2)主要程序代码①双击【添加】按钮,进入其Click事件处理函数,代码如下。

//【添加】按钮单击事件处理函数private void btnInsert_Click(object sender, EventArgs e){string strConn = "server=XP-4;database=chap2;integrated security=true"; //连接字符串SqlConnection conn = new SqlConnection(strConn); //声明并创建连接对象conn、Open(); //打开数据库连接//向商品表插入一条新记录string strSql="insert into Products values('0012','双层蒸锅','苏泊尔集团','厨具',129、9,100,'false')";SqlCommand comm = new SqlCommand(strSql, conn); //声明并创建命令对象int row = comm、ExecuteNonQuery(); //执行SQL语句,并获取受影响的行数if (row > 0) //如果记录插入成功,则弹出消息框提示{MessageBox、Show("插入数据成功", "操作状态对话框");}conn、Close(); //关闭数据库连接}②双击【修改】按钮,进入其Click事件处理函数,代码如下。

相关主题