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

欲使用数据命令将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);
}
}

时间: 2024-11-08 20:26:04

Visual C# 2005中使用数据命令执行Transact-SQL语句的相关文章

急求帮助!!visual studio 2012 C#开发过程中 gridView中的数据在数据库进行sql语句查询,结果重复出现

问题描述 里面的sqlclass1是:sqlclass1=newSqlClass("SELECTOyear,Omonth,Oday,sum([price])FROM[台球厅台位预订系统].[dbo].[Order1]whereresult='预约成功'groupbyOday,Oyear,Omonth"); 解决方案 解决方案二:运行结果:解决方案三:sql语句在数据库中执行时没有错误,也不会重复,但是在程序运行时就出现错误了,不知道为什么.解决方案四:有没有考虑过重复绑定,SqlDat

Visual C# 2005中为数据表建立自动编号字段

在实际操作中,流水号的需求是非常大的.比方说,我们经常希望订单号码或是订单上各个产品的顺序编号自动依次递增而不需要人工输入,当您遇到此类需求时,千万不要一时冲动而想以程序代码来解决,因为只要使用自动编号字段,万事大吉! ADO.NET并没有额外提供所谓的自动编号数据类型.欲使一个字段成为自动编号字段,您必须进行下列设置: ◆首先,字段的数据类型必须是Int16.Int32或Int64.如果字段的数据类型不是这三者,则会将DataType属性强制设置为Int32. ◆欲使一个字段成为自动编号字段,

Visual C++ 2005中的突破性变化

Microsoft Visual C++ 2005是微软公司Visual Studio 2005开发套件中的一出重头戏,与前一个版本相比,其革新性的集成开发环境与C++编译器,带来了有许多改变.在本文中,主要讲解程序员在升级程序时,可能会遇到的一些不同之处及变化,而这些变化很可能会使老一点的程序不能通过编译.总之,这些变化绝不是偶然发生的,其背后都有强大的理论依据在支撑,所以,使用Visual C++的程序员,在升级之前,一定要弄清楚这些变化. Visual C++中已经发生的变化 微软Visu

Visual C++ 2005中混合代码的初始化

在Visual Studio .NET 2003中初始化混合DLLs很麻烦,需要手工干预.但在 Visual Studio 2005 中,Visual C++ 和 CLR 团队设计了一种新的初始化模型,这种新模型更简单,更自动化. Visual Studio .NET 2003 的根本问题在于将本地代码和托管代码一起置于单"池"中.DllMain 期间该池的运行是不安全的,托管代码根本就不能在这里运行. 新的模型将静态初始化汇集在两个单独的池中.一个池负责本地的静态初始化:另一个负责托

Visual C++ 2005中的XML注释

C#程序员可以用三个斜杠来开始XML格式的注释,而且编译器可以据此生成可用于自动生成帮助文档的XML文件.Visual C++ 2005中的编译器也支持了这个功能,而且对非托管函数也生效,前提是必须打开/clr和/DOC开关,并且不能使用/clr:oldSyntax开关编译. /**///////Use two bubble sort steps ///to show the performance information///of different function calls./// in

如何在Microsoft Visual Studio 2005中创建控制台应用程序

在 Visual Studio 2005 中创建控制台应用程序 在 Visual Studio 2005 中的"文件" 菜单上,指向"新建" 并单击"项目". 在"新建项目" 对话框中,选择一种语言,然后在"项目类型" 框中选择"Windows". 在"模板" 框中,选择"控制台应用程序" . 在"位置" 框中,键入指向应用程序

insert语句在pl/sql中替换数据可以执行,但是java中却报错

问题描述 insert语句在pl/sql中替换数据可以执行,但是java中却报错 java语句: public int initiating(String title, String content, String numberLimit,String fkCustomerId) { String pkId = "44"; String sql="insert into ACTIVITY_INFO (pk_id,title,content,fk_customer_id,num

请问大神在数据库中可以执行的sql语句,为什么通过java类连接数据库执行报错

问题描述 请问大神在数据库中可以执行的sql语句,为什么通过java类连接数据库执行报错 报错信息: java.sql.SQLException: Already closed. 解决方案 这个错误提示并不是SQL语句的错误,而是Java的SQL操作类的连接对象已经关闭了,不能执行SQL而报出的异常. 解决方案二: 连接已经关了,当然出错了 解决方案三: 数据库为open,先open 在进行相应cmd命令执行. 解决方案四: 你的连接关闭了,jdbc去连接数据库啊 解决方案五: 这个问题还不是你

thinkPHP框架中执行原生SQL语句的方法

本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $Model = D(); 或者 $Model = M(); $sql = "select * from `order`"; $voList = $Model->query($sql); 只是需要new一个空的模型继承Model中的方法. 注意query是查功能,execute是增删改