C# 数据库SqlServer基础增删改查(返回单个值)

本文主要介绍C#结合SQLServer数据库,如何完成最基础的增删改查,其中的查只返回第一行第一列的单个值。


目录

一、环境介绍

二、代码

(一)向数据库中增加一条数据

(二)删除数据库中一条数据

(三)修改数据库中一条数据

(四)查询数据库返回第一行第一列的值


一、环境介绍

  • Visual Studio 2015
  • SQL Server 2012
  • 控制台应用程序
  • 数据库名称为Itcast2014
  • 表名为TblClass
  • 表字段如下图,tClassId为自动增长列


二、代码

(一)向数据库中增加一条数据

  1. 向数据库中插入数据时,主要使用的是ExecuteNonQuery方法,该方法会返回一个数字,表示影响的行数。
  2. 增删改的代码完全相同,只是提交给数据库的命令字符串不同而已。
  3. 数据库的连接最好是最晚打开,最早关闭,指的是在执行数据库命令时再打开,执行完后立马关闭,这样可以节省资源。
  4. 基本的流程是:(1)定义连接字符串,确定要连接的服务器名称、数据库名称、用户名、密码等等;(2)创建连接数据库的对象;(3)定义执行数据库命令的字符串,即增删改查的命令;(4)创建数据库命令对象;(5)打开数据库连接;(6)执行数据库命令;(7)关闭数据库连接。
  5. 当执行的语句是查询语句时,将返回-1。
  6. 一些值得注意的地方写在相应的代码注释处。
        /// <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);
                }
            }
        }

(四)查询数据库返回第一行第一列的值

  1. 查询数据库并返回第一行第一列的值,主要用到的方法是ExecuteScalar。
  2. 该方法返回的值的类型是object,需要做类型转换。
  3. 如果命令字符串中的命令是其他非查询语句,将执行语句,并返回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);
                }
            }
        }

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值