科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual C# 2005中如何使用数据命令执行Transact-SQL语句

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

数据命令其实就是SqlCommand、OleDbCommand、OdbcCommand或OracleCommand类的实例,也就是所谓的Command对象,它会内含可直接执行的SQL语句或存储过程的名称。在此我们将以SqlCommand对象作为讨论对象。

作者:章立民 来源:51CTO.com 2007年8月26日

关键字: C#

  • 评论
  • 分享微博
  • 分享邮件

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);

}

}

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章