A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邢欢 中级黑马   /  2012-5-12 10:14  /  1954 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

           在C#中可以吧一个SQl语句用几个字符串拼接然后传递执行,在数据库中如何执行呢?不要告诉我用存储过程...

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
應該使用 sqlcommand,通過settext指定sql語句,並且不要拼接sql語句,最好用@方式,然後用addparemeter替換,這樣能夠防止一些攻擊,增強安全性,執行的時候也有幾種情況,比如:executenonquery方式返回一個整形,表示改變數據庫的記錄的行數,還有一些其他的查詢,如:executescaler,返回查詢的第一行,一般用來查詢記錄的行數,比如執行select count(*).........
executereader,將返回一個包含所有查詢結果的集合。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
你的问题是问在C#里面搞定的SQL语句在数据库中是怎么执行的?

既然你说的是SQL语句,自然是以SQL语句的方式执行喽,
要是存储过程的话,在C# 中你调用的将是存储过程的名字,而不是SQL语句

执行的过程怎么说呢,不知道你发现没,sql语句本来就是数据库的一种命令吗,而且格式都那样,
在C#中把命令语句搞定,然后就由.net framework 这个东西帮你把sql命令传递给数据库,然后数据库执行。
执行完了,数据库把结果给.net frame work ,然后它再把结果给你

在c#中用sql命令查询的时候,不知道你有没有注意到每执行结束  都会有一个对应的close()语句呢
这个方法作用就是用来关闭资源的
而为什么要关闭资源呢,那是因为它调用了不属于它的东西,用了,自然得还给人家
也就是C# 是发布了命令,但执行的还是数据库。只不过命令不是直接打开数据库的时候就给它执行,而是由C#语言
先写好,再通过途径传递给它执行的而已

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马