首页 理论教育 C#编程新手教程:直接执行SQL命令

C#编程新手教程:直接执行SQL命令

时间:2023-10-22 理论教育 版权反馈
【摘要】:ADO.NET可以使用SqlCommand对象和OleDbCommand对象直接执行SQL处理命令,这样就不必编写C#代码即可实现对数据库的处理。在下面的内容中,将简要介绍直接使用SQL命令的方法。2)定义SqlCommand对象aa,然后使用CommandText设置执行的SQL查询语句。图17-22 输出显示行数实例87:使用ExecuteNonQuery()方法实现SQL处理下面将通过一个简单实例的实现过程,向读者介绍使用ExecuteNonQuery()方法实现直接SQL处理的过程。执行后将输出显示表Products内被更新处理的行数,如图17-23所示。

C#编程新手教程:直接执行SQL命令

ADO.NET可以使用SqlCommand对象和OleDbCommand对象直接执行SQL处理命令,这样就不必编写C#代码即可实现对数据库的处理。在下面的内容中,将简要介绍直接使用SQL命令的方法。

1.数据查询

使用SqlCommand的ExecuteScalar()方法可以查询数据库内的某条信息。例如在下面的代码中,直接使用SQL语句查询显示了表Customers中数据的行数。

978-7-111-36370-5-Part03-680.jpg

上述代码的实现流程如下。

1)定义SqlConnection对象mm,实现和指定数据库northwind的连接。

2)定义SqlCommand对象aa,然后使用CommandText设置执行的SQL查询语句。

3)通过ExecuteScalar()方法执行查询语句。

4)通过WriteLine输出表Customers内数据的行数。

上述代码保存在“光盘:\daima\17\zhijie”,执行将输出显示表Customers内数据的行数,如图17-22所示。

2.数据更新

使用SqlCommand的ExecuteNonQuery()方法,可以更新库内指定行的信息。

978-7-111-36370-5-Part03-681.jpg

图17-22 输出显示行数

实例87:使用ExecuteNonQuery()方法实现SQL处理

下面将通过一个简单实例的实现过程,向读者介绍使用ExecuteNonQuery()方法实现直接SQL处理的过程。本实例保存在“17”文件夹内,项目名为zhijiegengxin。本实例文件的功能是将表Products内SupplierID值为“光盘:\daima\3”的行的UnitPrice值增加一倍,然后输出被更新处理后的行数。(www.xing528.com)

实例文件zhijiegengxin.cs的主要代码如下:

978-7-111-36370-5-Part03-682.jpg

978-7-111-36370-5-Part03-683.jpg

上述实例文件的实现流程如下。

1)定义SqlConnection对象mm,实现和指定数据库northwind的连接。

2)定义SqlCommand对象aa,然后使用CommandText设置执行的SQL更新语句。

3)通过ExecuteNonQuery()方法执行更新语句。

4)通过WriteLine输出表Products内数据被更新的行数。

执行后将输出显示表Products内被更新处理的行数,如图17-23所示。

978-7-111-36370-5-Part03-684.jpg

图17-23 输出被更新的行数

多学一招

在ADO.NET中经常需要跟各种数据库打交道,在不使用存储过程的情况下,使用参数化SQL语句一定程度上可以防止SQL注入,同时对一些较难赋值的字段(如在SQL Server中赋值Image字段,在Oracle中赋值Clob字段等)使用参数化SQL语句很容易就能赋值,所以笔者经常在ADO.NET中使用参数化SQL语句,在此也建议读者尽量使用参数化SQL语句。

在参数化SQL中参数名的格式与其在存储过程中生成存储过程参数一致,例如在Oracle中存储过程参数一律以“:”开头,在MS SQL Server中存储过程参数一律以“@”开头,而在MySQL中存储过程(MySQL从5.0以后版本支持存储过程)参数一律以“?”开头,所以在参数化SQL语句中参数名有些不一样。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈