我可以将对象添加到我的 Access 数据库吗?

Posted

技术标签:

【中文标题】我可以将对象添加到我的 Access 数据库吗?【英文标题】:Can I add objects to my Access database? 【发布时间】:2014-07-01 06:49:38 【问题描述】:

我有一个存储多个值的类。目前我制作了一个对象列表然后使用它们,但现在我必须迁移到 Access 数据库。有人可以告诉我是否可以将这些对象放入数据库中吗?

【问题讨论】:

【参考方案1】:

您可以将对象序列化为 XML,然后将它们写入 Memo 字段(在 Access 2013 中称为 Long Text 字段)。以下代码适用于我:

public class MyClass

    public string Name  get; set; 
    public List<string> FavoriteThings  get; set; 


class Program

    static void Main(string[] args)
    
        var myObject = new MyClass();
        myObject.Name = "Gord";
        var myFavs = new List<string>();
        myFavs.Add("bicycles");
        myFavs.Add("ham");
        myObject.FavoriteThings = myFavs;

        var xs = new System.Xml.Serialization.XmlSerializer(myObject.GetType());
        var sw = new System.IO.StringWriter();
        xs.Serialize(sw, myObject);

        using (var con = new OleDbConnection())
        
            con.ConnectionString =
                    @"Provider=Microsoft.ACE.OLEDB.12.0;" +
                    @"Data Source=C:\Users\Public\Database1.accdb;";
            con.Open();
            using (var cmd = new OleDbCommand())
            
                cmd.Connection = con;
                cmd.CommandText = "INSERT INTO tblObjects (ObjectID, ObjectXML) VALUES (?,?)";
                cmd.Parameters.AddWithValue("?", 1);
                cmd.Parameters.AddWithValue("?", sw.ToString());
                cmd.ExecuteNonQuery();
            
            con.Close();
        
    

当我打开 Access 表时,选择备注字段,然后按 ShiftF2 以“放大”它,我看到了

【讨论】:

以上是关于我可以将对象添加到我的 Access 数据库吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Excel Web Access Web 部件添加到我的共享点库中?

我可以将 UIActivityViewController 添加到我的 ViewController 吗?

我可以将原生 GoogleMap 添加到我的 Cordova 混合应用程序吗?

无法将 Access-Control-Allow-Origin 添加到我的 WCF 库项目

我可以将 ssh 私钥永久添加到我的用户代理吗?

每秒有数千个新的 0 大小对象添加到我的净总数中,我应该担心吗?