欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 19.4.2 -19.4.4 新增、修改、删除数据

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

2025/3/17 0:03:06 来源:https://blog.csdn.net/UruseiBest/article/details/145437987  浏览:    关键词: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#教程 目录

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词