现在的位置: 首页 > 综合 > 正文

如何使用ADO.net

2018年05月09日 ⁄ 综合 ⁄ 共 4373字 ⁄ 字号 评论关闭
一、什么是ado.net

ADO.NET 提供对诸如 SQL Server 和 XML 这样的数据源以及通过 OLE DB 和 ODBC 公开的数据源的一致访问。 共享数据的使用方应用程序可以使用 ADO.NET 连接到这些数据源,并可以检索、处理和更新其中包含的数据。

ADO.NET 通过数据处理将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。 ADO.NET 包含用于连接到数据库、执行命令和检索结果的 .NET Framework 数据提供程序。 这些结果或者被直接处理,放在 ADO.NET DataSet 对象中以便以特别的方式向用户公开,并与来自多个源的数据组合;或者在层之间传递。 DataSet 对象也可以独立于 .NET Framework 数据提供程序,用于管理应用程序本地的数据或源自 XML 的数据。

ADO.NET 类位于 System.Data.dll 中,并与 System.Xml.dll 中的 XML 类集成。

二、连接到数据源

要连接到 Microsoft SQL Server 7.0 或更高版本,使用 SQL Server .NET Framework 数据提供程序的 SqlConnection 对象
要连接到 OLE DB 数据源,或连接到 Microsoft SQL Server 6.x 或更低版本,使用 OLE DB .NET Framework 数据提供程序的 OleDbConnection 对象
要连接到 ODBC 数据源,请使用 ODBC .NET Framework 数据提供程序的 OdbcConnection 对象
要连接到 ODBC 数据源,请使用 Oracle .NET Framework 数据提供程序的 OracleConnection 对象

三、示例

这里使用Sql Server数据作为示例数据库来演示,当然你也可以使用其它的数据库,只要在数据库连接那个方法修改一下就可以了。

using System;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            AdoTestClass atc = new AdoTestClass();
            atc.InsertTest(1, "sharp", "abu");
            atc.UpdateTest(5, "00000000");
            atc.DeleteTest(7);
            atc.QueryTest();
            TestProperties();

        }
    }
 

    public class AdoTestClass
    {
        /// <summary>
        /// 查询数据
        /// </summary>

        public void QueryTest()
        {
            SqlConnection conn = AdoTestClass.GetConnection();
          
            conn.Open();

            string sql = "select * from users where id % 2 != 0";
            SqlCommand comm = new SqlCommand(sql, conn);

            SqlDataReader reader = comm.ExecuteReader();

            while (reader.Read())
            {
                Console.WriteLine("id: {0}", reader[0]);
                Console.WriteLine("gender: {0}", reader[1]);
                Console.WriteLine("name: {0}", reader[2]);
                Console.WriteLine("pwd: {0}/n", reader[3]);
                //Console.WriteLine();
            }

            conn.Close();
            Console.ReadLine();
        }

        /// <summary>
        /// 插入数据
        /// </summary>
        /// <param name="gender">性别,只能是0,或者1</param>
        /// <param name="pwd">密码</param>
        /// <param name="name">姓名</param>

        public void InsertTest(int gender, string pwd, string name)
        {

            SqlConnection conn = AdoTestClass.GetConnection();

            string sql = string.Format("insert into users (gender, pwd, name) values ({0},'{1}','{2}')", gender, pwd, name);

            try
            {
                conn.Open();
                SqlCommand comm = new SqlCommand(sql, conn);

                if (comm.ExecuteNonQuery() > 0)
                {
                    Console.WriteLine("插入数据成功!");
                }
            }
            catch (SqlException ex)
            {
                Console.WriteLine(ex.Message);
            }

            conn.Close();
        }

        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="id">用户ID</param>
        /// <param name="pwd">密码</param>

        public void UpdateTest(int id, string pwd)
        {

            SqlConnection conn = AdoTestClass.GetConnection();

            string sql = string.Format("update users set pwd = '{0}' where id = {1}", pwd, id);

            try
            {
                conn.Open();
                SqlCommand comm = new SqlCommand(sql, conn);

                if (comm.ExecuteNonQuery() > 0)
                {
                    Console.WriteLine("更新数据成功!");
                }
            }
            catch (SqlException ex)
            {
                Console.WriteLine(ex.Message);
            }

            conn.Close();
        }

        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="id">用户ID</param>  
    
        public void DeleteTest(int id)
        {

            SqlConnection conn = AdoTestClass.GetConnection();

            string sql = string.Format("delete from users where id = {0}", id);

            try
            {
                conn.Open();
                SqlCommand comm = new SqlCommand(sql, conn);

                if (comm.ExecuteNonQuery() > 0)
                {
                    Console.WriteLine("删除数据成功!");
                }
            }
            catch (SqlException ex)
            {
                Console.WriteLine(ex.Message);
            }

            conn.Close();
        }

        public static SqlConnection GetConnection()
        {
            // 在这里指定数据库服务器的主机名, 数据库名, 用户名, 密码
            string connStr = "Data Source=ABU; Initial Catalog=csu; User ID=liky; Pwd=redhat";
            SqlConnection conn = new SqlConnection(connStr);

            return conn;
        }
    }

}


四、数据库脚本

create table users
(
id int identity(1,1) primary key,
gender bit,
name varchar(50),
pwd varchar(50)
)
go
)

抱歉!评论已关闭.