使用ADO.NET访问、查询和操作数据库

ADO.ENT的主要组件

  提供两个组件,用来访问和处理数据:.NET Framework 数据程序和DataSet(数据集)

  .NET Framework:是专门为数据处理及快速地只进,只读访问数据而设计的组件。使用它可以连接数据源,执行命令和检索结果,直接对数据进行操作 。

  DataSet:是专门为独立于任何数据源的数据访问而设计的。使用它,可以不必直接和数据源打交道,大批量地操作数据,也可以将数据绑定在控件上 。

.NET Framework 数据提供程序

  .NET Framework 用于SQL Server的数据提供程序:提供对Microsoft  SQL  Server数据的访问。使用System.Data.SqlClient 命名空间

  .NET Framework  用于OLE DB  的数据提供程序:提供对OLE DB  公开的数据源中数据的访问。使用System.Data.OleDb命名空间

  .NET Framework 用于ODBC 的数据提供程序 :提供使用ODBC  公开的数据源中数据的访问。使用System.Data.Odbc命名空间

1.string sqlcon="Data Source=.;Initial Calalog=MySchool;User ID=sa;Pwd=.";


  Connection:打开数据库连接

  程序与数据库沟通的桥梁

  SqlConnection con=new SqlConnection(sqlcon);

    try

    {

    //可能发生异常的代码

    con.Open();

    }

    catch(Exception ex)

    {

  //捕获异常

    Console.WriteLine(ex);

    }

    finally

    {

    con.Close();

    //永远都会被执行
    }

  Command:向数据库发送命令,提交SQL命令并从数据源中返回结果

    string sql="select count(*) from Student where StudentNo='"+username+"' and LoginPwd='"+password+"'";

  //向数据库发送一条SQL语句

    SqlCommand command=new SqlCommand(sql,con);

  //结果

    int count=(int)command.ExecuteScalar();

    if(count>0)

    {

    Console.WriteLine("登录成功");

    }else

    {

    Console.WriteLine("没有此用户");

    }

2.StringBuilder类: 用来定义可变字符串

  StringBuilder sb = new StringBuilder("");

  //追加字符串

    sb.Append("World");

    sb.Append("!");

    //W2orld

    sb.Insert(2, "2");

  //原字符串:Wo2rld! 截取之后:W2rld!

    sb.Remove(1, 2);

    //ToString()

    Console.WriteLine(sb.ToString());

  查询学生记录数

  //打开数据库连接

    con.Open();

  //使用StringBuilder追加SQL语句

    StringBuilder sb = new StringBuilder();

    sb.Append("select ");

    sb.Append(" Count(*) ");

    sb.Append(" from ");

    sb.Append("[Student]");

    Console.WriteLine(sb.ToString());

  //创建一个SqlCommand对象

    SqlCommand com = new SqlCommand(sb.ToString(),con);

    Console.WriteLine((int)com.ExecuteScalar());

    DataReader:从数据源中检索只读、只进的数据流,每次读取一行数据

    StringBuilder sb = new StringBuilder();

    sb.AppendLine("select");

    sb.AppendLine("[StudentNo]");

    sb.AppendLine(",[StudentName]");

    sb.AppendLine("from");

    sb.AppendLine("[Student]");

    SqlCommand com = new SqlCommand(sb.ToString(), con);

  //从数据源中检索只读、只进的数据流

    return com.ExecuteReader();

    SqlDataReader reader=GetStudentInfo();

    while (reader.Read())

    {

    Console.WriteLine("{0} {1}",reader["StudentNo"],reader["StudentName"]);

    }

    reader.Close();

    ExecuteNonQuery():

    StringBuilder sb = new StringBuilder();

    sb.AppendLine("Insert into");

    sb.AppendLine("[Grade]([GradeName])");

    sb.AppendLine("Values('" + gradeName + "')");

  //3.创建一个SqlCommand

    SqlCommand com = new SqlCommand(sb.ToString(),con);

  //4.返回执行结果

    return com.ExecuteNonQuery();

    Student stu = new Student();

    Console.WriteLine("请输入年级名称:");

    string gradename = Console.ReadLine();

    int count = stu.AddGrade(gradename);

    if (count > 0)

    {

    Console.WriteLine("success!");

    }

    else

    {

    Console.WriteLine("success mother!");

    }

原文地址:https://www.cnblogs.com/wxl941549541/p/7756457.html