博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ADO.NET 1创建连接、执行命令
阅读量:5239 次
发布时间:2019-06-14

本文共 3708 字,大约阅读时间需要 12 分钟。

 

一无参构造函数的形式:
创建连接、创建命令、执行命令:
string connstr = @"server=.;database=TestDataBase;uid=sa;pwd=130988825";
                                         //连接字符串,可以在服务器资源管理器那里,右键连接,修改连接,高级,在对话框里面可以看到
SqlConnection conn =new SqlConnection(connstr);                   //将连接字符串传给创建的连接实例
conn.Open(); //打开连接
SqlCommand cmd = new SqlCommand();                                  //创建一个命令实例
cmd.Connection = conn;                                                          //给命令的Connection属性复制,即关联一个连接
cmd.CommandText = @"select count(*) from Student where sId='2'";                          // 给命令的CommandText属性复制,即关联一个sql语句
int n = (int)cmd.ExecuteScalar();                                               //执行命令,执行命令的方法有:ExecuteScalar()、ExecuteNonQuery()、ExecuteScalar()
Console.WriteLine(n.ToString());
Console.ReadKey();
==========================================================================
二、执行命令的几个方法的综述:
1. ExecuteNonQuery------执行增、删、改,不返回任何结果
2. ExecuteReader-------执行查询,返回一个类型化SqlDataReader,用于逐条读取每一行的所有信息
3. ExecuteScalar-------执行查询,返回第一行第一列的object类型、一般用于求总数、或者有没有
==================================================================================
三、三个方法的标准代码
1、ExecuteNonQuery()
此方法执行update, delete, insert语句返回命令所操作的行数,它为一整数
static void Main(string[] args)
{
     string connstr = @"server=WIN-VD88F15CMMD;database=Key;uid=sa;pwd=130988825";                          //连接字符串
     string sqlz = "insert into [Student](sName,sClass,sGender) values('key',1,'男')";                      //插入数据的sql语句
     string sqlx = "delete from [Student] where sName='key'";                                               //删除
     string sqlg = "update [Student] set sName='胡冬冬',sClass=4 where sName='胡章诚'";                     //修改
     using (SqlConnection conn = new SqlConnection(connstr))
     {
           using (SqlCommand cmd = new SqlCommand(sqlz, conn))
           {
                  conn.Open();
                 int a = cmd.ExecuteNonQuery();
                 Console.WriteLine("数据增添成功");
                 Console.ReadKey();
                 cmd.CommandText = sqlx;
                 int b = cmd.ExecuteNonQuery();
                 Console.WriteLine("数据删除成功");
                 Console.ReadKey();
                 cmd.CommandText = sqlg;
                 int c = cmd.ExecuteNonQuery();
                 Console.WriteLine("修改成功");
                 Console.ReadKey();
            }
      }
}
 
==============================================================================
2、ExecuteReader()
返回一个SqlDataReader 的实例
static void Main(string[] args)
{
       string connstr = @"server=win-45022h0f9ns\mysqlserver;database=CallCenter;Persist Security Info=True;uid=sa;pwd=130988825";
       string sql = @"select * from Student";
       using (SqlConnection conn = new SqlConnection(connstr))
       {
             using (SqlCommand cmd = new SqlCommand(sql, conn))
             {
                   conn.Open();
                   using(SqlDataReader sda = cmd.ExecuteReader())
                   if (sda.HasRows)
                   {
                         while (sda.Read())
                        {
                              Console.WriteLine("id为:" + sda[0]);
                         }
                    }
                   Console.ReadKey();
              }
        }
}
=======================================================================================
3、ExecuteScalar()             
很多情况下,需要从SQL语句中返回一个结果,例如给定表中的记录个数,或者服务器当前的日期时间,ExecuteScalar()适用于这些情况
获取单个结果集
static void Main(string[] args)
{
      string connstr = @"Data Source=WIN-VD88F15CMMD;Initial Catalog=Key;User ID=sa;pwd=130988825";
      string sql = "select count(*) from [Class]";
      using (SqlConnection conn = new SqlConnection(connstr))
      {
            using (SqlCommand cmd = new SqlCommand(sql, conn))
           {
                  conn.Open();
                 int n = (int)cmd.ExecuteScalar();
                 Console.WriteLine(n.ToString());
                 Console.ReadKey();
           }
      }
}
该方法返回一个Object对象,如果需要可以把该对象的数据类型转化为合适的数据类型。
二、获取多个结果集
static void Main(string[] args)
{
      string connstr = @"server=win-45022h0f9ns\mysqlserver;database=CallCenter;uid=sa;pwd=130988825";
      string sql = @"select * from Student;select * from T_scripts";
      using (SqlConnection conn = new SqlConnection(connstr))
      {
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                  conn.Open();
                  SqlDataReader sda = cmd.ExecuteReader();
                  if (sda.HasRows)
                  {
                        while (sda.Read())
                       {
                              Console.WriteLine("id为:"+sda[0]);
                       }
                   }
                  Console.WriteLine("=================");
                 Console.ReadKey();
                 if (sda.NextResult())                  //利用 sda.NextResult()                                    判断是否还有结果集
                 {
                       while (sda.Read())
                        {
                             Console.WriteLine("id为:" + sda[0]);
                       }
                 }
                Console.ReadKey();
               sda.Close();
              Console.ReadKey();
         }
     }
}

 

转载于:https://www.cnblogs.com/key1309/p/3143017.html

你可能感兴趣的文章
tensorflow mac安装方法
查看>>
enyo官方开发入门教程翻译一Getting Started之A Tour of Enyo
查看>>
Daily Scrum 10.9
查看>>
Parallel Programming-多消费者,多生产者同时运行并行
查看>>
hdu 2044-2050 递推专题
查看>>
hdu 3573(数学+贪心)
查看>>
一个曲折的让我懵了的故事
查看>>
asp.net文本框中如何禁止复制粘贴
查看>>
无法打开输入文件“optimized.lib” 编译osgEarth2.8+VS2013+CMake3.4.0在Release版本的问题...
查看>>
avs2解码软件:参考帧管理
查看>>
【刷题】BZOJ 3144 [Hnoi2013]切糕
查看>>
Python--进阶处理9
查看>>
判断对象相等时的问题(==)
查看>>
忘记linux root密码或进入单用户方法
查看>>
CryptographyUtil盐加密
查看>>
湖南集训day4
查看>>
在终端更改MAC的MySQL的root密码
查看>>
求整数的二进制表示中1的个数 (转)
查看>>
高仿BiliBili的iOS客户端源码项目
查看>>
poj 1228 凸包
查看>>