SQL数据库操作步骤及代码.docx
- 文档编号:25574620
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:58
- 大小:496.38KB
SQL数据库操作步骤及代码.docx
《SQL数据库操作步骤及代码.docx》由会员分享,可在线阅读,更多相关《SQL数据库操作步骤及代码.docx(58页珍藏版)》请在冰豆网上搜索。
SQL数据库操作步骤及代码
是为.NET框架而创建的,是对ADO(ActiveXDataObjects)对象模型的扩充。
提供了一组数据访问服务的类,可用于对MicrosoftSQLServer、Oracle等数据源的一致访问。
模型分为.NETDataProvider(数据提供程序)和DataSet数据集(数据处理的核心)两大主要部分。
.NET数据提供程序提供了四个核心对象,分别是Connection、Command、DataReader和DataAdapter对象。
功能如表2-1所示。
表2-1
对象
功能
Connection
提供和数据源的连接功能
Command
提供访问数据库命令,执行查询数据或修改数据的功能,例如运行SQL命令和存储过程等
DataReader
从数据源中读取只向前的且只读的数据流
DataAdapter
是DataSet对象和数据源间的桥梁。
DataAdapter使用4个Command对象来运行查询、新建、修改、删除的SQL命令,把数据加载到DataSet,或者把DataSet内的数据送回数据源
SQLServer相关配置
在使用C#访问数据库之前,首先创建一个名为“chap2”的数据库,此数据库作为2.1节及2.2节中例题操作的默认数据库。
然后创建数据表Products,表结构如表2-2所示。
创建完毕后可录入初始化数据若干条。
表2-2Products表表结构
序号
列名
字段说明
数据类型
长度
主键
允许空
1
ProductID
商品编号
char
4
主键
否
2
ProductName
商品名称
nvarchar
nvava
40
否
3
SupplierName
供应商名称
nvarchar
40
否
4
CategoryName
商品类别名称
nvarchar
40
否
5
UnitPrice
单价
money
否
6
UnitsInStock
库存量
smallint
否
7
Discount
是否折扣
char
1
否
下面首先介绍几个SQLServer2012的常用操作。
这些操作都是初学者在实践环节及上机课的操作中出现问题较多的地方。
1.身份验证方式
SQLServer2012在安装时默认是使用Windows验证方式的,但是安装过后用户可随时修改身份验证方式。
启动SQLServer2012ManagementStudio,在“连接到服务器”对话框中选择“Windows身份验证”连接服务器,连接成功后,在窗体左侧的“对象资源管理器”中右键单击服务器实例节点,并在弹出的快捷菜单中选择“属性”菜单项,系统将弹出“服务器属性”窗体,切换至“安全性”选项卡,如图2-1所示。
图2-1“服务器属性”对话框-“安全性”选项卡
在“服务器身份验证”部分选择“SQLServer和Windows身份验证模式”选项,并单击【确定】按钮。
系统将提示需要重新启动SQLServer以使配置生效,如图2-2所示。
图2-2系统提示框
右键单击“对象资源管理器”的服务器实例节点,在弹出的快捷菜单中选择“重新启动”菜单项,SQLServer将重新启动服务,重启成功后即可使用混合验证方式登录SQLServer服务器。
2.添加登录账户
大部分初学者都习惯于使用SQLServer的系统管理员账号“sa”来登录数据库服务器,而在实际工作环境中使用sa账号登录服务器是不合理的。
因为很多情况下系统的数据库是部署在租用的数据库服务器上的,此时数据库设计人员或编程人员都不可能具有sa账号的使用权限,因此在将身份验证方式修改为SQLServer和Windows混合验证后,需要为某应用程序创建一个专用的登录账户。
其操作步骤描述如下。
(1)使用Windows身份验证登录SQLServer,在对象资源管理器中点击“安全性”节点前面的加号“+”,在展开后的“登录名”子节点上单击右键,如图2-3所示,并在弹出的快捷菜单中选择“新建登录名”选项。
图2-3登录名节点的右键菜单
(2)系统弹出“登录名—新建”对话框中,如图2-4所示。
首先在登录名输入框中填写需要创建的用户名,此处以“zd”为例;将身份验证方式选为“SQLServer身份验证”,为新建账户设置密码为“123”,同时去除“强制实施密码策略”和“用户在下次登录时必须更改密码”选项;最后为账户选择默认数据库“chap2”。
图2-4“登录名-新建”对话框“常规”选项卡
(3)服务器角色节点不予配置。
有关SQLServer服务器角色请参考相关资料,此处不再详细介绍。
(4)在对话框左侧选项卡中选择“用户映射”节点,如图2-5所示,在“映射到此登录名的用户”列表中,勾选此前创建好的数据库“chap2”,在窗体右下方的“数据库角色成员身份”框里选择“db_Owner”,即数据库拥有者。
图2-5“登录名-新建”对话框“用户映射”选项卡
(5)安全对象节点一般不予配置。
(6)在对话框左侧选项卡中选择“状态”节点,如图2-6所示,将“是否允许连接到数据库引擎”选项设为“授予”,同时将“登录”选项设为“启用”。
以上各节点配置完成后单击【确定】按钮,即完成了对账户的创建工作。
图2-6“登录名-新建”对话框“状态配置”选项卡
(7)新建账户完成后,重新连接SQLServer,如图2-7所示,选择SQLServer身份验证方式,输入前面设置的登录名“zd”及密码“123”,点击【连接】按钮,即可完成登录。
登录成功后在对象资源管理器中可看到服务器实例名后面显示的登录用户名,如图2-8所示。
图2-7“连接到服务器”对话框图2-8对象资源管理器
连接数据库
在对数据源进行操作之前,首先需建立到数据源的连接,可使用Connection对象显式创建到数据源的连接。
【例2-1】设计一个Windows应用程序,能通过“Windows验证“和“Windows和SQLServer混合验证”两种方式建立到数据库的连接。
图2-9“连接数据库”窗体控件Tab顺序
实现过程如下。
(1)新建一Windows应用程序,命名为connection,将创建的默认窗体名更名为frmConnect,窗体的Text属性设置为“连接数据库”,界面设计如图2-9所示。
frmConnect窗体中的主要控件,按Tab键顺序,描述如表2-3所示。
表2-3“连接数据库”窗体控件及说明
Tab顺序
控件类型
控件名称
说明
主要属性
属性名
属性值
0
Button
btnConnect1
Windows身份验证方式连接数据库
Text
Windows验证
1
btnConnect2
混合验证方式连接数据库
Text
混合验证
(2)主要程序代码
说明:
①本节内所有例题代码均需引用System.Data.SqlClient命名空间,代码如下:
usingSystem.Data.SqlClient;//添加对SQLServer数据访问对象的引用
后续例题不再逐一说明。
②由于篇幅所限,本节中所有例题的异常捕获代码都省略了,读者需自行添加获取控件输入及访问数据库等处的异常捕获代码。
双击【Windows验证】按钮,进入其Click事件处理函数,代码如下:
//Windows方式连接数据库
privatevoidbtnConnect1_Click(objectsender,EventArgse)
{
stringstrConn="server=XP-4;database=chap2;integratedsecurity=true";//连接字符串
SqlConnectionconn=newSqlConnection(strConn);//创建连接对象
conn.Open();//打开连接
//如连接成功则弹出消息框提示
MessageBox.Show("数据库已通过集成验证方式连接成功","连接状态对话框");
conn.Close();//使用完毕后关闭数据库连接
}
双击【混合验证】按钮,进入其Click事件处理函数,填写代码如下。
//SQLServer+Windows方式连接数据库
privatevoidbtnConnect2_Click(objectsender,EventArgse)
{
stringstrConn="server=XP-4.;database=chap2;uid=zd;pwd=123";//连接字符串
SqlConnectionconn=newSqlConnection(strConn);//创建连接对象
conn.Open();//打开连接
//如连接成功则弹出消息框提示
MessageBox.Show("数据库已通过混合验证方式连接成功","连接状态对话框");
conn.Close();//使用完毕后关闭数据库连接
}
数据库连接字符串包含要连接的数据库的信息,如server属性指定数据库服务器名称,database属性指定数据库名称,使用Windows身份验证方式只需要给出server和database两个属性的值,并使用“integratedsecurity=true”指定身份验证方式为Windows验证;当使用混合验证时则需要使用uid属性指定数据库账户、pwd属性指定该账号的密码。
说明:
上例中的连接字符串中的用户名“zd”和密码“123”,是以本节“添加登录账户”的方式创建的,读者可自行修改为自己计算机的SQLServer登录名及密码。
运行程序,分别单击【Windows验证】和【混合验证】两个按钮,如连接成功,将分别弹出不同的连接状态对话框,如图2-10所示。
图2-10连接状态对话框
对数据库进行添加、修改及删除操作
在创建好到数据库的连接之后,可以使用Command对象对数据库进行更新操作。
【例2-2】设计一个Windows应用程序,能实现对数据库表的添加、修改及删除操作。
实现过程:
(1)新建一Windows应用程序,命名为operateData,将创建的默认窗体名更名为frmCommand,窗体的Text属性设置为“对数据库执行添加、修改及删除操作”,界面设计如图2-11所示。
frmCommand窗体中的主要控件,按Tab键顺序,描述如表2-4所示。
图2-11“对数据库进行添加、修改及删除操作”窗体Tab顺序视图
表2-4“对数据库执行添加、修改及删除操作”窗体控件及说明
Tab顺序
控件类型
控件名称
说明
主要属性
属性名
属性值
0
Button
btnInsert
向数据库表添加一条记录
Text
添加
1
btnUpdate
修改数据库表中的记录
Text
修改
2
btnDelete
删除数据库表中的记录
Text
删除
(2)主要程序代码
①双击【添加】按钮,进入其Click事件处理函数,代码如下。
//【添加】按钮单击事件处理函数
privatevoidbtnInsert_Click(objectsender,EventArgse)
{
stringstrConn="server=XP-4;database=chap2;integratedsecurity=true";//连接字符串
SqlConnectionconn=newSqlConnection(strConn);//声明并创建连接对象
conn.Open();//打开数据库连接
//向商品表插入一条新记录
stringstrSql="insertintoProductsvalues('0012','双层蒸锅','苏泊尔集团','厨具',129.9,100,'false')";
SqlCommandcomm=newSqlCommand(strSql,conn);//声明并创建命令对象
introw=comm.ExecuteNonQuery();//执行SQL语句,并获取受影响的行数
if(row>0)//如果记录插入成功,则弹出消息框提示
{
MessageBox.Show("插入数据成功","操作状态对话框");
}
conn.Close();//关闭数据库连接
}
②双击【修改】按钮,进入其Click事件处理函数,代码如下。
//【修改】按钮单击事件处理函数
privatevoidbtnUpdate_Click(objectsender,EventArgse)
{
stringstrConn="server=XP-4;database=chap2;integratedsecurity=true";
SqlConnectionconn=newSqlConnection(strConn);
conn.Open();
//修改商品表中的一条记录
stringstrSql="updateProductssetUnitsInStock=500whereProductID='0012'";
SqlCommandcomm=newSqlCommand(strSql,conn);
introw=comm.ExecuteNonQuery();
if(row>0)
{
MessageBox.Show("修改数据成功","操作状态对话框");
}
conn.Close();
}
③双击【删除】按钮,进入其Click事件处理函数,代码如下。
//【删除】按钮单击事件处理函数
privatevoidbtnDelete_Click(objectsender,EventArgse)
{
stringstrConn="server=XP-4;database=chap2;integratedsecurity=true";
SqlConnectionconn=newSqlConnection(strConn);
conn.Open();
//删除商品表中的一条记录
stringstrSql="deletefromProductswhereProductID='0012'";
SqlCommandcomm=newSqlCommand(strSql,conn);
introw=comm.ExecuteNonQuery();
if(row>0)
{
MessageBox.Show("删除数据成功","操作状态对话框");
}
conn.Close();
}
运行程序,分别单击【添加】、【修改】和【删除】按钮,如操作成功,将分别弹出不同的操作状态对话框,如图2-12所示。
对于数据库记录的修改情况,读者可同时从SQLServer管理控制台访问数据库chap2的Products表进行验证。
图2-12操作状态对话框
查询数据库中的数据
【例2-3】设计一个Windows应用程序,使用DataReader查询数据库中的信息并加载到ComboBox控件的选项中。
实现过程:
(1)新建一Windows应用程序,命名为testDataReader,将创建的默认窗体名更名为frmProducts,窗体的Text属性设置为“商品类别及名称”,界面设计如图2-13所示。
frmProducts窗体中的主要控件,按Tab键顺序,描述如表2-5所示。
图2-13“商品类别及名称”窗体Tab键顺序视图
表2-5“商品类别及名称”窗体控件及说明
Tab顺序
控件类型
控件名称
说明
主要属性
属性名
属性值
0
ComboBox
comboCategory
所有商品类别名称
DropDownStyle
DropDownList
1
comboProducts
某商品类别下的商品名称
DropDownStyle
DropDownList
说明:
界面中不参与编程的Label控件不再进行说明,以下各例题均同样处理。
(2)主要程序代码
①双击窗体标题栏,进入Load事件处理函数,访问数据库,为“商品类别”下拉框加载数据,代码如下。
//窗体加载事件处理函数,为“商品类别”组合框加载所有的商品类别数据
privatevoidfrmProducts_Load(objectsender,EventArgse)
{
stringstrConn="server=XP-4;database=chap2;integratedsecurity=true";//连接字符串
SqlConnectionconn=newSqlConnection(strConn);//声明并创建连接对象
conn.Open();//打开数据库连接
stringstrSql="selectdistinctCategoryNamefromProducts";//查询
SqlCommandcomm=newSqlCommand(strSql,conn);
SqlDataReaderdr=comm.ExecuteReader();
while(dr.Read())
comboCategory.Items.Add(dr[0]);//依次加载数据项至ComboBox
dr.Close();
conn.Close();
}
②双击商品类别下拉框,进入其SelectedIndexChanged事件处理函数,根据其选项为“商品名称”下拉框加载数据,代码如下。
//“商品类别”下拉框选项索引变化事件处理函数,
//根据商品类别下拉框中的选项加载该类别下的所有的商品名称
privatevoidcomboCategory_SelectedIndexChanged(objectsender,EventArgse)
{
comboProducts.Items.Clear();
stringstrConn="server=XP-4;database=chap2;integratedsecurity=true";
SqlConnectionconn=newSqlConnection(strConn);
conn.Open();
stringstrSql="selectProductNamefromProductswhereCategoryName='"+comboCategory.Text+"'";
SqlCommandcomm=newSqlCommand(strSql,conn);
SqlDataReaderdr=comm.ExecuteReader();
while(dr.Read())
comboProducts.Items.Add(dr[0]);
dr.Close();
conn.Close();
}
【例2-4】使用DataAdaper和DataSet对象查询数据库中的信息并加载到ComboBox控件的选项中。
实现过程:
(1)新建一Windows应用程序,命名为dataSet,将创建的默认窗体名更名为frmProducts,窗体及各主要控件的属性设置同例2-3。
(2)主要程序代码
①双击窗体标题栏,进入其Load事件处理函数,访问数据库,为“商品类别”下拉框加载数据,代码如下。
//窗体加载事件处理函数,为“商品类别”组合框加载所有的商品分类数据。
privatevoidfrmProducts_Load(objectsender,EventArgse)
{
stringstrConn="server=XP-4;database=chap2;integratedsecurity=true";//连接字符串
SqlConnectionconn=newSqlConnection(strConn);//声明并创建连接对象
stringstrSql="selectdistinctCategoryNamefromProducts";//查询不重复的商品类别名称
SqlDataAdapterda=newSqlDataAdapter(strSql,conn);//声明并创建数据适配器对象
DataSetds=newDataSet();//声明并创建数据集对象
da.Fill(ds);//使用数据适配器填充数据集
comboCatagory.DataSource=ds.Tables[0];//设置商品类别下拉框数据源
comboCatagory.DisplayMember="CategoryName";//设置商品类别下拉框的显示属性
}
②双击“商品类别”下拉框,进入其SelectedIndexChanged事件处理函数,根据其选中项为“商品名称”下拉框加载数据,代码如下。
//“商品类别”下拉框选项索引变化事件处理函数,
//根据商品类别下拉框中的选项加载该类别下的所有的商品名称
privatevoidcomboCatagory_SelectedIndexChanged(objectsender,EventArgse)
{
stringstrConn="server=XP-4;database=chap2;integratedsecurity=true";
SqlConnectionconn=newSqlConnection(strConn);
//根据“商品类别”下拉框中的选项查询商品名称
stringstrSql="selectProductNamefromProductswhereCategoryName='"+comboCategory.Text+"'";
SqlDataAdapterda=newSqlDataAdapter(strSql,conn);
DataSetds=newDataSet();
da.Fill(ds);
comboProducts.DataSource=ds.Tables[0];//设置商品名称下拉框的数据源
comboProducts.DisplayMember="ProductName";//设置商品名称下拉框的显示属性
}
思考:
细心的同学会发现,例2-3和例2-4虽然运行界面完全相同,但是窗体加载之后列表框中选项的情况是有区别的。
那么,区别在哪呢?
原因又是什么呢?
数据绑定控件
【例2-5】设计一个Windows应用程序,能实现商品信息的维护。
本例题中,程序要读取数据库中的数据,加载数据至ListBox和ComboBox控件,并根据用户在ListBox控件中选择的数据项再次访问数据库,获取相关记录。
另外,本例题还实现了对商品表Products的增加、修改及删除操作。
图2-14“商品信息管理”窗体Tab键顺序视图
实现过程:
(1)新建一Windows应用程序,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据库 操作 步骤 代码