当前位置: 首页 > article >正文

19.4.2 -19.4.4 新增、修改、删除数据

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

需要北风数据库的请留言自己的信箱。

19.4.2 新增数据

数据库数据的新增、修改和删除不同于查询,查询需要返回一个DbDataReader对象,然后使用DbDataReader获得数据,但是新增、修改和删除不需要获得数据,所以这三个操作使用OleDbCommand的ExecuteNonQuery方法即可。

【例 19.8【项目:code19-008】向北风数据库中产品表增加数据。

    ……代码略

        private void button1_Click(object sender, EventArgs e)

        {

            //新建OleDbCommand对象实例

            OleDbCommand command = new OleDbCommand();

            //要执行的SQL语句

            command.CommandText = "insert into 产品 values(82,'红薯',12,3,'每盒12个',12.00,100,10,0,false)";

            //设置OleDbCommand的数据连接为OleDbConnection

            command.Connection = conn;

            int recordCount;

           //执行ExecuteNonQuery,返回受影响的行

            recordCount = command.ExecuteNonQuery();

            MessageBox.Show(recordCount + " 条数据被新增");

        }

运行结果如下图所示:

图19-27 向产品表中新增一条记录

command.CommandText也可以使用类似以下的SQL语句:

    

command.CommandText = "INSERT INTO 产品 ( 产品名称, 供应商ID, 类别ID, 单位数量, 单价, 库存量, 订购量, 再订购量, 中止 ) values('可乐',12,1,'每件10瓶',7.6,40,10,20,false)";

这条SQL语句并没有加上产品ID这一字段,因为该字段是一个自动增加的字段,如果数据表中还有设置了默认值的字段,也可以不需要在SQL语句中加上这些字段。如产品表中“单价”、“库存量”、“订购量”、“再订购量”、“中止”都设置了默认值,因此这几个字段都可以不加在SQL语句中,当新增时,数据库自动会为它们增加上默认值:

command.CommandText = " INSERT INTO 产品 ( 产品名称, 供应商ID, 类别ID, 单位数量 ) values('可乐A',2,1, '每件6')";

图19-28 产品表内增加的数据

注意:请务必小心引号的用法,由于CommandText对应是一个字符串,整个字符串应该用双引号包围,使用的SQL语句中字段的值如果是字符串的,可以使用单引号包围,或者对该值使用转义符+引号:

command.CommandText = "INSERT INTO 产品 ( 产品名称, 供应商ID, 类别ID, 单位数量, 单价, 库存量, 订购量, 再订购量, 中止 ) values(\"可乐\",12,1,\"每件6瓶\",7.6,40,10,20,false)";

【例 19.9【项目:code19-009】使用查询参数的方式增加数据。

    ……代码略

        private void button1_Click(object sender, EventArgs e)

        {

            //新建OleDbCommand对象实例

            OleDbCommand command = new OleDbCommand();

            //要执行的SQL语句

            command.CommandText = "INSERT INTO 产品 ( 产品名称, 供应商ID, 类别ID, 单位数量, 单价) values(?,?,?,?,?)";

            command.Parameters.Add("name", OleDbType.VarChar);

            command.Parameters["name"].Value = "酸梅汁A";    //DBNull.Value;

            command.Parameters.Add("SupplierID", OleDbType.Integer);

            command.Parameters["SupplierID"].Value = 12;

            command.Parameters.Add("TypeID", OleDbType.Integer);

            command.Parameters["TypeID"].Value = "1";

            command.Parameters.Add("info", OleDbType.VarChar);

            command.Parameters["info"].Value = "每件23瓶";

            command.Parameters.Add("price", OleDbType.Currency);

            command.Parameters["price"].Value = "5.0";

            //设置OleDbCommand的数据连接为OleDbConnection

            command.Connection = conn;

            int recordCount;

            //执行ExecuteNonQuery,返回受影响的行

            recordCount = command.ExecuteNonQuery();

            MessageBox.Show(recordCount + " 条数据被新增");

        }

使用查询参数方式时,需要注意ParametersOleDbType必须要和数据表中字段的类型相对应,其次还要与字段规则相对应,例如,产品表中“产品名称”设置了“必需”,如果使用以下语句:

command.Parameters["name"].Value = DBNull.Value;

那么会抛出错误提示:

由于其 Required 属性设置为真(True),字段 '产品.产品名称' 不能包含 Null 值。在此字段中输入一个数值。

19.4.3 修改数据

【例 19.10【项目:code19-010】修改产品表中的数据。

    ……代码略

        private void button1_Click(object sender, EventArgs e)

        {

            //新建OleDbCommand对象实例

            OleDbCommand command = new OleDbCommand();

            //要执行的SQL语句

            command.CommandText = "update 产品 set 产品名称='沙棘汁',供应商ID=3 where 产品名称='可乐A'";

            //设置OleDbCommand的数据连接为OleDbConnection

            command.Connection = conn;

            int recordCount;

            //执行ExecuteNonQuery,返回受影响的行

            recordCount = command.ExecuteNonQuery();

            MessageBox.Show(recordCount + " 条数据被修改");

        }

        //使用查询参数方式:

        private void button2_Click(object sender, EventArgs e)

        {

            //新建OleDbCommand对象实例

            OleDbCommand command = new OleDbCommand();

            //要执行的SQL语句

            command.CommandText = "update 产品 set 产品名称=?,供应商ID=? where 产品名称=?";

            command.Parameters.Add("name", OleDbType.VarChar);

            command.Parameters["name"].Value = "红茶";

            command.Parameters.Add("SupplierID", OleDbType.Integer);

            command.Parameters["SupplierID"].Value = 3;

            command.Parameters.Add("oldname", OleDbType.VarChar);

            command.Parameters["oldname"].Value = "酸梅汁A";

            //设置OleDbCommand的数据连接为OleDbConnection

            command.Connection = conn;

            int recordCount;

            //执行ExecuteNonQuery,返回受影响的行

            recordCount = command.ExecuteNonQuery();

            MessageBox.Show(recordCount + " 条数据被修改");

        }

   

19.4.4 删除数据

【例 19.11【项目:code19-011】删除产品表中的数据。

    ……代码略

        private void button1_Click(object sender, EventArgs e)

        {

            //新建OleDbCommand对象实例

            OleDbCommand command = new OleDbCommand();

            //要执行的SQL语句

            command.CommandText = "delete * from 产品 where 产品名称='红茶'";

            //设置OleDbCommand的数据连接为OleDbConnection

            command.Connection = conn;

            int recordCount;

            //执行ExecuteNonQuery,返回受影响的行

            recordCount = command.ExecuteNonQuery();

            MessageBox.Show(recordCount + " 条数据被删除");

    }

     使用查询参数方式删除数据的代码同之前的例子,这里不再累述。

学习更多vb.net知识,请参看vb.net 教程 目录

学习更多C#知识,请参看C#教程 目录


http://www.kler.cn/a/546961.html

相关文章:

  • MySQL的SQL执行流程
  • 机器学习 - 理论和定理
  • Java进阶,时间与日期,包装类,正则表达式
  • RedHat8安装postgresql15和 postgis3.4.4记录及遇到的问题总结
  • deepseek部署在本地详细教程
  • 木材表面缺陷检测数据集,支持YOLO+COCO JSON+PASICAL VOC XML+DARKNET格式标注信息,平均正确识别率95.0%
  • 【开发工具】开发一个类postman的idea插件
  • 工业路由器物联网应用,智慧环保环境数据监测
  • 【Linux】ip命令详解
  • LabVIEW 中dde.llbDDE 通信功能
  • web集群(LVS-DR)
  • 【k8s应用管理】kubernetes lngress资源管理
  • Python学习笔记 ver1.0
  • (ICLR-2025)你只采样一次:通过自协作扩散 GAN 驯服一步文本到图像合成
  • HTML的入门
  • windows平台上 oracle简单操作手册
  • 【二叉树学习7】
  • Eclipse:关闭多余的工具条
  • Docker compose 以及镜像使用
  • Sprinig源码解析