• WebMatrix之WebMatrix.Data


    WebMatrix之WebMatrix.Data

    WebMatrix数据访问系列目次:

    • WebMatrix之数据访问
    • WebMatrix之WebMatrix.Data
    • WebMatrix之WebMatrix.Data揭密
    • WebMatrix之改革WebMatrix.Data

    在 上篇文章中,我简单形貌了在WebMatrix web开辟东西怎样简单的实现数据库的CRUD。其中,数据库访问组件WebMatrix.Data是微软专为WebMatrix打造的一个轻量型的动态 数据访问组件。你可以通过单独引用WebMatrix.Data.dll步伐集,来作为数据访问的轻量型组件。之以是说是轻量型的,由于该组件不付出存储 进程,事物,说到底,它就是专为SSCE量身打造的。

    下面简单来看看WebMatrix.Data是怎样跨数据库平台事变的。

    1.SQL Server 2005/2008的付出

    以 往神马跨数据库付出的大家见得最多的莫过于三层中的通过更换DAL的dll,工场模式连合设置文件依靠注入实现数据库的切换。但是 WebMatrix.Data如今完全不必要那么做,最简单的方法是通过设置文件设置节ConnectionString具体设置即可。下例是利用的一个 控制台步伐,在app.config下的ConnectionString如下:

    <connectionStrings><add name="mysqldb" connectionString="Server=.;Database=MyTestDb;User ID=sa;Password=******;" providerName="System.Data.SqlClient"/></connectionStrings>

    设置文件设置好后你可以像如许访问数据:

    //sql server            var db = Database.Open("

    上述代码雷同访问SSCE数据库一样,差别之处在于必要提供相应数据库的设置毗连字符串,DataBase.Open要领传入一个定名的毗连字符串“mysqldb”。

    必要留意的是假如省略connectionStrings中的providerName,将会抛出非常:

    image

    但是可以在AppSettings中这么来写来防备非常的抛出从而正常访问数据库:

    <appSettings>    <add key="systemData:defaultProvider" value=http://www.cnblogs.com/Microred/archive/2012/04/04/"System.Data.SqlClient"/>  </appSettings>

    假 如既不在connectionStrings中提供providerName,也不在AppSettings中设置providerName,那么 WebMatrix.Data会默认利用SSCE的SQL提供步伐(System.Data.SqlServerCe.4.0)。至于为什么,下篇文章将 会揭秘。

    同样地,可以利用DataBase.OpenConnectionString(string connectionString)及其重载要领OpenConnectionString(string connectionString, string providerName)传入一个未定名的毗连字符串来创建一个DataBase实例。

    2.Oracle的付出

    Oracle的测试我选用了ODP.NET(Oracle Data Provider for .net)。期间,发明白一个问题(利用了一个偷懒的写法),假如connectionStrings像如许设置:

    <add name="myoracle" connectionString="Data Source=ORADB;User ID=testdb;Password=*****;"  providerName="Oracle.DataAccess.Client" />

    ORADB是在tnsnames.ora设置的,利用传统的方法没有任何问题:

    var data = http://www.cnblogs.com/Microred/archive/2012/04/04/new DataTable();            using (OracleConnection connection = new OracleConnection(connectionstring))            {                using (OracleDataAdapter adapter = new OracleDataAdapter("SELECT * FROM testdb.SYS_DICT a", connection))                {                    adapter.Fill(data);                }            }

    但是利用WebMatrix.Data访问就会有问题:

     var db = Database.Open("myoracle");            var list = db.Query("SELECT * FROM testdb.SYS_DICT a");            foreach (var item in list)            {                Console.WriteLine(item.DICT_NAME);            }
  • 相关阅读:
    Eclipse的安装及汉化图解
    Intent常用使用汇总
    Android Notification (转)
    垃圾回收
    svn常见错误汇总
    位运算
    FusionCharts简单教程(一)---建立第一个FusionCharts图形
    Delphi发送邮件...
    协程库的一些笔记
    学习日记之单例模式和Effective C++
  • 原文地址:https://www.cnblogs.com/webenh/p/5744521.html
Copyright © 2020-2023  润新知