黑马程序员--ADO.Net基础

---------------------- ASP.Net+Android+IO开发.Net培训、期待与您交流! ----------------------

 

     连接字符串

1)项目中内嵌mdf文件

ADO.Net中提供了对各种不同数据库的统一操作接口。

直接在项目中内嵌mdf文件的方式使用MSSQLServer数据库(基于服务的数据库),其连接字符串为:

"Data Source=(local);
AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;
User Instance=True"
Main()方法中前置的代码为:
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug") || dataDir.EndsWith(@"\bin\Release"))
{
    dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
    AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}

2)SQL Server身份验证

"Data Source=(local);Initial Catalog=DB_Login;User ID=sa;Password=123456"
或者
"Server=(local);Database=DB_Login;Uid=sa;Pwd=123456"

注:DataSource/ServerInitialCatalog/DatabaseUser ID/UidPassword/Pwd都可互换

     ADO.Net连接数据库

ADO.Net中的连接等资源都实现了IDisposable接口,可以使用using进行资源的管理

1) 连接数据库

using (SqlConnection conn = new SqlConnection("连接字符串") )
{
conn.Open();
......
}
或者:
SqlConnection conn = new SqlConnection("连接字符串");
conn.Open();
……
conn.Close();
conn.Dispose();

2) 对数据库里的数据进行插入、更新、删除

using (SqlConnection conn = new SqlConnection("连接字符串"))
{
    conn.Open();
    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "SQL插入、更新、删除语句";
        cmd.ExecuteNonQuery();
    }
}

3) 对数据库里的数据进行查询

1ExecuteScalar():查询结果集中的第一行第一列的数据,返回值类型为object

using (SqlConnection conn = new SqlConnection("连接字符串"))
{
    conn.Open();
    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "SQL查询语句";
        cmd.ExecuteScalar();
    }
}

2ExecuteReader():查询结果集中的多行的数据

每调用一次ExecuteReader()Read()方法,就往下查询一次结果集中的一行并且Read()返回true,只到查询到结果集的最后一行之后,Read()返回false

using (SqlConnection conn = new SqlConnection("连接字符串"))
{
    conn.Open();
    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "SQL查询语句";
        using (SqlDataReader reader = cmd.ExecuteReader()) 
        {
            while (reader.Read())
            {
                //GetOrdinal():在结果集中,根据指定的列名称获取列序号
                int columnOrdinal = reader.GetOrdinal("列名称");
                //GetString():在结果集中,根据指定的列序号获取列字符串形式的值
                string columnString = reader.GetString(columnOrdinal);
            }
        }
    }
}

(3)DataSet和SqlDataAdapter:查询结果集中的多行的数据

using (SqlConnection conn = new SqlConnection("连接字符串"))
{
    conn.Open();
    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "SQL查询语句";
        //将结果集交给数据适配器(SqlDataAdapter)处理
        SqlDataAdapter adapter = new SqlDataAdapter(cmd);
        //创建一个数据集(DataSet)
        DataSet ds = new DataSet();
        //数据适配器将结果集填充到数据集中
        adapter.Fill(ds);
    }
}


---------------------- ASP.Net+Android+IO开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值