本文主要介绍C#结合SQLServer数据库,如何完成最基础的增删改查,其中的查只返回第一行第一列的单个值。
目录
一、环境介绍
二、代码
(一)向数据库中增加一条数据
(二)删除数据库中一条数据
(三)修改数据库中一条数据
(四)查询数据库返回第一行第一列的值
一、环境介绍
- Visual Studio 2015
- SQL Server 2012
- 控制台应用程序
- 数据库名称为Itcast2014
- 表名为TblClass
- 表字段如下图,tClassId为自动增长列
二、代码
(一)向数据库中增加一条数据
- 向数据库中插入数据时,主要使用的是ExecuteNonQuery方法,该方法会返回一个数字,表示影响的行数。
- 增删改的代码完全相同,只是提交给数据库的命令字符串不同而已。
- 数据库的连接最好是最晚打开,最早关闭,指的是在执行数据库命令时再打开,执行完后立马关闭,这样可以节省资源。
- 基本的流程是:(1)定义连接字符串,确定要连接的服务器名称、数据库名称、用户名、密码等等;(2)创建连接数据库的对象;(3)定义执行数据库命令的字符串,即增删改查的命令;(4)创建数据库命令对象;(5)打开数据库连接;(6)执行数据库命令;(7)关闭数据库连接。
- 当执行的语句是查询语句时,将返回-1。
- 一些值得注意的地方写在相应的代码注释处。
/// <summary>
/// 向数据库中增加一条数据
/// </summary>
private static void InsertData()
{
//连接字符串,Itcast2014是使用的数据库名称,server=.表示使用的是本地计算机
//integrated security=true表示使用Windows验证的方式去连接到数据库服务器
//也可以使用uid=sa;pwd=***来登陆数据库
string conStr = "server=.;database=Itcast2014;integrated security=true;";
//创建连接数据库对象,使用using可以在使用完该对象后,自动释放资源
using (SqlConnection con = new SqlConnection(conStr))
{
//向表中插入一条数据,表中共三个字段,第一个字段是自动赋值的,无须再赋值
string cmdTxt = "insert into TblClass values('高三十班','理科班')";
//创建执行数据库命令的对象
using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
{
//数据库连接最好是最晚打开,最早关闭
con.Open();
//执行非查询命令时使用ExecuteNonQuery,返回影响的行数
int r = cmd.ExecuteNonQuery();
//执行完命令后立即关闭数据库连接,减少资源消耗
con.Close();
Console.WriteLine("成功插入{0}行", r);
}
}
}
(二)删除数据库中一条数据
代码基本和增加的代码相同,只有命令字符串不同。
/// <summary>
/// 删除数据库中的一条数据
/// </summary>
private static void DeleteData()
{
//连接字符串,Itcast2014是使用的数据库名称,server=.表示使用的是本地计算机
//integrated security=true表示使用Windows验证的方式去连接到数据库服务器
//也可以使用uid=sa;pwd=***来登陆数据库
string conStr = "server=.;database=Itcast2014;integrated security=true;";
//创建连接数据库对象,使用using可以在使用完该对象后,自动释放资源
using (SqlConnection con = new SqlConnection(conStr))
{
//删除表中tClassId值为29的数据
string cmdTxt = "delete from TblClass where tClassId=29";
//创建执行数据库命令的对象
using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
{
//数据库连接最好是最晚打开,最早关闭
con.Open();
//执行非查询命令时使用ExecuteNonQuery,返回影响的行数
int r = cmd.ExecuteNonQuery();
//执行完命令后立即关闭数据库连接,减少资源消耗
con.Close();
Console.WriteLine("成功删除了{0}行", r);
}
}
}
(三)修改数据库中一条数据
代码基本和增加的代码相同,只有命令字符串不同。
/// <summary>
/// 修改数据库中一条数据
/// </summary>
private static void UpdateData()
{
//连接字符串,Itcast2014是使用的数据库名称,server=.表示使用的是本地计算机
//integrated security=true表示使用Windows验证的方式去连接到数据库服务器
//也可以使用uid=sa;pwd=***来登陆数据库
string conStr = "server=.;database=Itcast2014;integrated security=true;";
//创建连接数据库对象,使用using可以在使用完该对象后,自动释放资源
using (SqlConnection con = new SqlConnection(conStr))
{
//修改表中tClassId值为230的tClassName为高三十一班
string cmdTxt = "update TblClass set tClassName='高三十二班' where tClassId=30";
//创建执行数据库命令的对象
using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
{
//数据库连接最好是最晚打开,最早关闭
con.Open();
//执行非查询命令时使用ExecuteNonQuery,返回影响的行数
int r = cmd.ExecuteNonQuery();
//执行完命令后立即关闭数据库连接,减少资源消耗
con.Close();
Console.WriteLine("成功修改了{0}行", r);
}
}
}
(四)查询数据库返回第一行第一列的值
- 查询数据库并返回第一行第一列的值,主要用到的方法是ExecuteScalar。
- 该方法返回的值的类型是object,需要做类型转换。
- 如果命令字符串中的命令是其他非查询语句,将执行语句,并返回0.
/// <summary>
/// 查询数据库并返回第一行第一列的值
/// </summary>
private static void ScalarSelect()
{
//连接字符串,Itcast2014是使用的数据库名称,server=.表示使用的是本地计算机
//integrated security=true表示使用Windows验证的方式去连接到数据库服务器
//也可以使用uid=sa;pwd=***来登陆数据库
string conStr = "server=.;database=Itcast2014;integrated security=true;";
//创建连接数据库对象,使用using可以在使用完该对象后,自动释放资源
using (SqlConnection con = new SqlConnection(conStr))
{
//查询表中有多少条数据
string cmdTxt = "select count(*) from TblClass";
//创建执行数据库命令的对象
using (SqlCommand cmd = new SqlCommand(cmdTxt, con))
{
//数据库连接最好是最晚打开,最早关闭
con.Open();
//执行返回结果集的第一行第一列的值,返回的类型是object,需要类型转换
int r = Convert.ToInt32(cmd.ExecuteScalar());
//执行完命令后立即关闭数据库连接,减少资源消耗
con.Close();
Console.WriteLine("表中共有{0}行", r);
}
}
}
更多推荐
C# 数据库SqlServer基础增删改查(返回单个值)
发布评论