开发者社区> soledad_lhc> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ADO.NET——Command(执行SQL) & DataReader(读取数据库)

简介:     一,关于两个对象的基础知识    1,Command         Command对象主要用于对数据源执行SQL命令并返回结果。       ADO.NET提供了Connection来连接数据库,同时也提供了Command对象来查询数据库。
+关注继续查看

   

一,关于两个对象的基础知识

   1,Command

        Command对象主要用于对数据源执行SQL命令并返回结果。


      ADO.NET提供了Connection来连接数据库,同时也提供了Command对象来查询数据库。同Connection对象一样,Command也有两种:OleDbCommand和SqlCommand.其区别同Connection对象。

    

    

     Command对象有一个属性:CommandTypesql语句或者存储过程);三个重要方法:ExecuteNonQuery(增、删、改影响的行数)、ExecuteReader(返回DataReader对象类型)ExecuteScalar(返回结果集的第一行第一列值).


  2,DataReader

    而DataReader对象不能直接实例化,必须通过Command对象中的一个方法来创建。


     所以,在使用这两个对象时,可以把他们连起来使用。首先,我们用Connection连接数据库,然后用Command执行数据库命令,最后将执行的结果传递给DataReader.


二,示例

   例如:

static void Main(string[] args)
        {
            //创建连接
            string strConn = "database=Login;server=localhost;UID=sa;PWD=123456";  //连接字符串

            using (SqlConnection conn = new SqlConnection(strConn)) //建立连接,并且当连接使用完后自动关闭
            {
                conn.Open();  //打开连接

                //查询
                string strSQL = "select * from Users where ID=@UserID";
                SqlCommand cmd = new SqlCommand(strSQL, conn);

                //添加参数
                string userid = "1";   //查询用户ID=1的用户
                cmd.Parameters.AddWithValue("@UserID", userid);  //参数的赋值

                //执行查询,保存结果
                SqlDataReader reader = cmd.ExecuteReader();  //将查询结果保存在reader里面

                //显示查询结果

                if (reader.HasRows)   //如果查到的结果不为空
                {
                    while (reader.Read())   //读取每条,逐条显示
                    {
                        Console.WriteLine("ID是:{0};UserName是:{1}", reader["ID"], reader["UserName"]);
                    }
                }
                else   //没有查询结果时候
                {
                    Console.WriteLine("没有查到结果");
                }
            }


            //conn.Close();  //关闭连接

        }


  以上例子包含了Command的参数化查询过程和DataReader的基本使用,再加上connection对象,基本可以完成对数据库的读操作。

   未完待续。。。

 

   

  

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
LeetCode(数据库)- Number of Accounts That Did Not Stream
LeetCode(数据库)- Number of Accounts That Did Not Stream
16 0
使用postman调用Cloud for Customer自定义的OData创建sales order销售订单
使用postman调用Cloud for Customer自定义的OData创建sales order销售订单
33 0
海量数据迁移之sqlldr和datapump的缺点分析
在数据迁移中,sql*loader和datapump总是作为一些常用的数据迁移方案,自己在经历了一些项目之后,优点就不说了,说点这些方案的缺点,批评不自由,则赞美无意义,所以我在提出了一些失败错误的经验后,会在下一篇中给出这些缺点的解决方案。
1053 0
SQL Server DATEADD() 函数
本文转载自:点击打开链接 SQL Server DATEADD() 函数 DATEADD(datepart,number,date)date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。datepart 参数可以是下列的值: 具体实例:
851 0
SQL Server DATEADD() 函数
本文转载自:点击打开链接 SQL Server DATEADD() 函数 DATEADD(datepart,number,date)date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。datepart 参数可以是下列的值: 具体实例:
916 0
Lotus Domino Web Administrator – Cross Site Command Execution
Description Lotus Domino is vulnerable to CSRF attack which can de used for OS command execution in webadmin.
711 0
oom_kill_process造成数据库挂起并出现found dead shared server
这篇博客是上一篇博客Oracle shutdown immediate遭遇ORA-24324 ORA-24323 ORA-01089的延伸(数据库挂起hang时,才去重启的),其实这是我们海外一工厂的遇到的案例,把内容拆开是因为这个case分开讲述显得主题明确一些。
1047 0
+关注
soledad_lhc
csdn博客:http://blog.csdn.net/lhc1105
508
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载