美文网首页我的技术文章程序员
C#_ADO.NET_基础操作介绍

C#_ADO.NET_基础操作介绍

作者: 芭比哪吒 | 来源:发表于2018-08-10 15:48 被阅读14次

ADO.NET

数据库连接类 SqlConnection

  • Data Source=.;
  • Initial Catalog=myDataBase;
  • User Id=myUsername;
  • Password=myPassword;

或者

  • Server=myServerAddress;
  • Database=myDataBase;
  • User Id=myUsername;
  • Password=myPassword;
  • Trusted_Connection=False;
using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=MyCar"))
{
    //打开连接
    conn.Open();
    //将执行的sql
    String sql = "select COUNT(*) from Car";
    //创建命令对象,指定要执行sql语句与连接对象conn
    SqlCommand cmd = new SqlCommand(sql, conn);
    //执行查询返回单行单列的值,Object类型
    Object result = cmd.ExecuteScalar();
    //显示结果到标签
    lblCount.Text = result.ToString();
}

数据库操作类 SqlCommand

1. ExecuteNonQuery()

执行一个SQL语句

返回受影响的行数

这个方法主要用于执行对数据库执行增加、更新、删除操作

注意查询的时候不是调用这个方法

String sql =
"INSERT INTO"+
"Car([Title] ,[Speed] ,[Info])"+
"VALUES(@Ttile,@Speed,@Info)";

//创建命令对象,指定要执行sql语句与连接对象conn
SqlCommand cmd = new SqlCommand(sql,conn);

//指定参数
cmd.Parameters.Add(new SqlParameter("@Ttile", txtTitle.Text));
cmd.Parameters.Add(new SqlParameter("@Speed", txtSpeed.Text));
cmd.Parameters.Add(new SqlParameter("@Info", txtInfo.Text));

//执行,返回影响行数
int rows=cmd.ExecuteNonQuery();

2. ExecuteScalar()

从数据库检索单个值

这个方法主要用于统计操作

ExecuteScalar()这个方法是针对SQL语句执行的结果是一行一列的结果集

这个方法只返回查询结果集的第一行第一列。

3. ExecuteReader()

用于实现只进只读的高效数据查询。

ExecuteReader:返回一个SqlDataReader对象

可以通过这个对象来检查查询结果,它提供了只进只读的执行方式,即从结果中读取一行之后,移动到另一行,则前一行就无法再用。有一点要注意的是执行之后,要等到手动去调用Read()方法之后,DataReader对象才会移动到结果集的第一行,同时此方法也返回一个Bool值,表明下一行是否可用,返回True则可用,返回False则到达结果集末尾。

使用DataReader可以提高执行效率,有两种方式可以提高代码的性能:

一种是基于序号的查找

一个是使用适当的Get方法来查找。

可以通过定位列的位置来查找记录。

GetOrdinal() 方法,此方法接收一个列名并返回此列名所在的列号.

using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=MyCar"))
{
    conn.Open();
    String sql = "select Id,Title,Speed,Info from Car";
    SqlCommand cmd = new SqlCommand(sql, conn);
    SqlDataReader sdr = cmd.ExecuteReader();
    
    //下移游标,读取一行,如果没有数据了则返回false
    while (sdr.Read())
    {
        Console.WriteLine("编号:" 
        + sdr["Id"] 
        + ",车名:" 
        + sdr["Title"] 
        + ",速度:" 
        + sdr["Speed"]);
    }
}

相关文章

网友评论

    本文标题:C#_ADO.NET_基础操作介绍

    本文链接:https://www.haomeiwen.com/subject/doxlbftx.html