频道直达:新闻 - 组网 - 安全 - 服务器 - 存储 - 系统 - 应用 - 开发 - 数据库 - 前沿 - 技术人 - 培训 - 求职 - 读书 - 教程 - 专题 - 产品 - 案例 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Visual C# 2005中如何使用数据命令执行Transact-SQL语句

作者: 章立民 出处:51CTO.com 2007-03-16 14:26    砖    好    评论   进入论坛
阅读提示:数据命令其实就是SqlCommand、OleDbCommand、OdbcCommand或OracleCommand类的实例,也就是所谓的Command对象,它会内含可直接执行的SQL语句或存储过程的名称。在此我们将以SqlCommand对象作为讨论对象。

Visual C# 2005文件 IO与数据存取秘诀》节选

条款33
Visual C# 2005如何实现比较两个文件的内容是否完全相同
条款55
Visual C# 2005如何让ComboBox控件显示出多个数据源属性
条款56
C#中为什么我的ComboBox控件在数据绑定时加载速度很慢
条款63
Visual C# 2005如何连接至Access数据库
条款73
Visual C# 2005中如何为数据表建立自动编号字段
条款100
Visual C# 2005中如何使用数据命令执行Transact-SQL语句
条款134
C#中将DataSet的内容写成XML时如何格式化字段数据
条款152
C#中当用户尝试删除数据行时如何显示确认对话框
条款161
Visual C# 2005中如何以程控方式启动默认的浏览器
条款163
Visual C# 2005中如何产生与比较哈希值

欲使用数据命令将Transact-SQL语句传送至SQL Server来执行,请将Transact-SQL语句赋给SqlCommand对象的CommandText属性,并将SqlCommand对象的CommandType属性设置成CommandType.Text(此为默认值)。

在此要提醒大家,当您使用CommandType属性为Text的数据命令时,请先小心检查客户端传送出来的信息,然后才能将这些信息传递至您的数据库。恶意用户会尝试发送(插入)修改过或额外的SQL语句,以获取未经授权的访问权,甚至是破坏数据库。在将用户输入传输到数据库前,一定要确认信息是有效的。最好的做法是尽可能使用参数型查询或存储过程。

程序范例1

图 6-4所示是CH6_DemoForm003.cs的执行画面。它示范如何使用SqlCommand对象将Transact-SQL语句传送至SQL Server来执行,并藉此取得“飞狐工作室”数据表的员工人数。

图 6-4

相关程序代码编写于窗体的Load事件处理函数中,列示如下:

private void CH6_DemoForm003_Load(object sender, EventArgs e)
{

...
try
{
// 建立连接。
using (SqlConnection con =
new SqlConnection(connectStringBuilder.ConnectionString))
{
// 建立数据命令对象(亦即 SqlCommand 对象)。
SqlCommand foxCMD = new SqlCommand();

// 设置 SqlCommand 对象所要使用的连接。
foxCMD.Connection = con;

// 设置赋给 SqlCommand 对象的是 TransactSQL 语句。
foxCMD.CommandType = CommandType.Text;

// 指派所要执行的 TransactSQL 语句。
foxCMD.CommandText = "SELECT COUNT(*) FROM dbo.飞狐工作室";

// 打开连接。
con.Open();

// 执行数据命令并将所返回的单一值赋给变量 total。
Int32 total = (int)(foxCMD.ExecuteScalar());

lblInfo.Text = "飞狐工作室的员工人数是:" +

total.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "请注意",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}

程序范例2

图 6-5所示是CH6_DemoForm004.cs的执行画面,它示范如何使用SqlCommand对象将TransactSQL语句传送至SQL Server来执行,并藉此取得“飞狐工作室”数据表的员工平均薪资。

图 6-5

相关程序代码编写于窗体的Load事件处理函数中,列示如下:

private void CH6_DemoForm004_Load(object sender, EventArgs e)
{
...
try
{
// 建立连接。
using (SqlConnection con =
new SqlConnection(connectStringBuilder.ConnectionString))
{
// 建立数据命令对象(亦即 SqlCommand 对象)。
SqlCommand foxCMD =
new SqlCommand("SELECT AVG(目前薪资) FROM dbo.飞狐工作室");

// 设置 SqlCommand 对象所要使用的连接。
foxCMD.Connection = con;

// 打开连接。

con.Open();

// 执行数据命令并将所返回的单一值赋给变量 mAverage。
double mAverage = Convert.ToDouble(foxCMD.ExecuteScalar());

lblInfo.Text = "飞狐工作室的员工平均薪资是:" +
mAverage.ToString("$ NT # #,# #0.0000");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "请注意",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}

【责任编辑:火凤凰 TEL:(010)68476606-8007】

专题
Sun以10亿美元并购开源数据库厂商MySQL
Oracle数据库开发之PL/SQL基础应用
C#实用基础教程
Oracle数据库开发基础教程
2006年数据库频道热点关注
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看81120次)
·UML类图详解 (查看72587次)
·C++是垃圾语言?! (查看42719次)
·C#技术开发指南 (查看40290次)
·UML统一建模语言 (查看39225次)
·Java编程开发手册 (1198个砖)
·Java基础教程 (431个砖)
·C#技术开发指南 (311个砖)
·.NET开发手册 (254个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (658个好)
·Java基础教程 (578个好)
·.NET开发手册 (282个好)
·PB开发教程 (213个好)
·Delphi开发技术手册 (200个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。