【问题标题】:How get the data from database with xpo (devexpress)?如何使用 xpo (devexpress) 从数据库中获取数据?
【发布时间】:2012-09-28 15:10:21
【问题描述】:

我是 devexpress 的新手,遇到了一些困难。

我已经用 Visual Studio 创建了一个项目“.net empty c#”。我想用“devexpress xpo”连接我的数据库“mysql”。
我创建了一个“dxperience orm 数据模型向导”来连接我的数据库。 最后,我有一个“connectionHelper.cs”(几乎没有静态方法)和一个以我的表名称命名的类。

但我不明白,如何使用 connectionHelper 在数据库中连接、读取、写入……? 我阅读了 devexpress 的文档,但没有得到相同的结果。

提前谢谢你

类连接助手:

using DevExpress.Xpo;
using DevExpress.Data.Filtering;
namespace ProduWebEmpty.produweb
{
    public static class ConnectionHelper
    {
        public const string ConnectionString = @"XpoProvider=MySql;server=localhost;user id=root; password=; database=web;persist security info=true;CharSet=utf8;";
        public static void Connect(DevExpress.Xpo.DB.AutoCreateOption autoCreateOption)
        {
            XpoDefault.DataLayer = XpoDefault.GetDataLayer(ConnectionString, autoCreateOption);
            XpoDefault.Session = null;
        }
        public static DevExpress.Xpo.DB.IDataStore GetConnectionProvider(DevExpress.Xpo.DB.AutoCreateOption autoCreateOption)
        {
            return XpoDefault.GetConnectionProvider(ConnectionString, autoCreateOption);
        }
        public static DevExpress.Xpo.DB.IDataStore GetConnectionProvider(DevExpress.Xpo.DB.AutoCreateOption autoCreateOption, out IDisposable[] objectsToDisposeOnDisconnect)
        {
            return XpoDefault.GetConnectionProvider(ConnectionString, autoCreateOption, out objectsToDisposeOnDisconnect);
        }
        public static IDataLayer GetDataLayer(DevExpress.Xpo.DB.AutoCreateOption autoCreateOption)
        {
            return XpoDefault.GetDataLayer(ConnectionString, autoCreateOption);
        }
    }
}

authentification.cs 类(authentification 是我的表名进入我的数据库)

using DevExpress.Xpo;
using DevExpress.Data.Filtering;
namespace ProduWebEmpty.produweb
{
    public partial class authentification
    {
        public authentification(Session session) : base(session) { }
        public authentification() : base(Session.DefaultSession) { }
        public override void AfterConstruction() { base.AfterConstruction(); }
    }
}

authentification.designer.cs 类:

using DevExpress.Xpo;
using DevExpress.Data.Filtering;
namespace ProduWebEmpty.produweb
{

    public partial class authentification : XPLiteObject
    {
        int fId;
        [Key(true)]
        public int Id
        {
            get { return fId; }
            set { SetPropertyValue<int>("Id", ref fId, value); }
        }
        string fPseudo;
        [Size(255)]
        public string Pseudo
        {
            get { return fPseudo; }
            set { SetPropertyValue<string>("Pseudo", ref fPseudo, value); }
        }
        string fMotDePasse;
        [Size(255)]
        public string MotDePasse
        {
            get { return fMotDePasse; }
            set { SetPropertyValue<string>("MotDePasse", ref fMotDePasse, value); }
        }
        string fEmail;
        [Size(255)]
        public string Email
        {
            get { return fEmail; }
            set { SetPropertyValue<string>("Email", ref fEmail, value); }
        }
    }
}

【问题讨论】:

    标签: c# asp.net devexpress xpo


    【解决方案1】:

    连接到您的数据库:

    IDataLayer db_layer = XpoDefault.GetDataLayer(new SqlConnection(@sqlCon_str),
        DevExpress.Xpo.DB.AutoCreateOption.DatabaseAndSchema);
        Session session =new Session(db_layer);
    
    mypersistent record =new mypersistent(session){
    property1="string property",
    property2=123456
    };
    record.Save(); // save new record(line) to Database With Unique Oid
    

    阅读:

    //if you know the Unique_Oid so:
    mypersistent record=session.FindObject<mypersistent>(CriteriaOperator.Parse("Oid = ?",Unique_Oid );
    
    Console.WriteLine(string.Format("property1 = {0} , property2={1}",record.property1,record.property2));
    

    否则您可以阅读收藏:

    XpCursor collection=new XpCursor(session,typeof(mypersistent),CriteriaOperator.Parse("property1 = '?'","string property");
    
    foreach(mypersistent p in collection) { /* .... */ }
    

    删除:

    //after getting record from database (above) 
    
    record.Delete();
    

    更新

    //Update
    
    record.property1="Hello";
    record.Save();
    

    【讨论】:

      【解决方案2】:

      您可以按照How to use XPO in an ASP.NET (Web) application 知识库文章中列出的说明开始。

      “示例”部分中的示例说明了主要的实际应用场景。

      【讨论】:

      • ConnectionHelper 类只是为您提供有用的方法来配置您的数据库连接。例如,如果您使用的是 ASP.NET 应用程序,请将 ConnectionHelper.Connect 调用放入 Global.asax.cs 文件中的 Application_Start 方法中。有关更多详细信息,请参阅上面 Mike 建议的帮助文章。如果您在此任务上需要更多帮助,请使用官方 DevExpress 支持渠道:www.devexpress.com/sc(在 30 天评估期内免费)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 2020-06-14
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多