将结构化的arraylist绑定到数据库

时间:2009-10-09 18:39:46

标签: c# asp.net sql-server visual-studio

我有一个arraylist

ArrayList backupSpecList = new ArrayList();

结构:

public struct BackupSpecEntry
{
   //for Multiple BACKUP_SPEC_EXCLUDE_PATHS
   public string path;
   public string inclExcl;
   public byte inclExclFlags;
   public bool indexContents;
   public int serverBackupSpecId;
   public int freq;
   public int retention;

   //for Multiple BACKUP_SPEC_EXCLUDE_FILE_NAMES

   public BackupSpecEntry(string Path, string InclExcl, byte InclExclFlags, bool IndexContents,
    int ServerBackupSpecId, int Freq, int Retention)
   {
      path = Path;
      inclExcl = InclExcl;
      inclExclFlags = InclExclFlags;
      indexContents = IndexContents;
      serverBackupSpecId = ServerBackupSpecId;
      freq = Freq;
      retention = Retention;
   }
}

我把这个结构放在arraylist中并作为会话发送到下一页

Session["BackupSpecList"] = backupSpecList;

我在下一页上将其检索为

ArrayList jaja = (ArrayList)Session["BackupSpecList"];

这一切都发生得很完美,但我需要帮助将其放入数据库中。 有人可以指导我吗?感谢。

3 个答案:

答案 0 :(得分:0)

假设您要使用结构的内容插入或更新数据库,那么ADO.NET是一个很好的起点。这是一个good tutorial,它将向您介绍读取,更新和插入SQL Server数据库的基础知识。还有官方MSDN site以获取更多深度信息。

答案 1 :(得分:0)

使用.NET 3.5,您可以选择使用Entity FrameworkLINQ to SQL。我推荐后者为初学者。通过这种方式,您可以获得为您完成的所有数据库管道,您所要做的就是绑定并享受。请注意,您无需了解LINQ即可使用基础架构。

使用LINQ to SQL的正常途径是首先创建数据库实体,然后让Visual Studio根据它们为您生成对象。在这里,您将创建一个BackupSpecEntry表,并按照其中一个教程设置数据绑定到LINQ to SQL类:

我不保证上述文章的质量(ScottGu的除外)。我刚刚从搜索中快速选择它们,因为看起来合适。

要将自己的功能添加到生成的BackupSpecEntry类,您可以从生成的类派生自己的类,或使用partial class。我建议尽可能使用部分类而不是继承,因为这就是Microsoft打算如何扩展生成的类。

答案 2 :(得分:0)

您需要的是一个数据持久层。在.NET中,访问存储在关系数据库管理系统(例如SQL Server)中的数据的最佳方法是ADO.NET。它提供了低水平的螺母和螺栓。

所有类型的数据持久层都在内部使用ADO.NET,但在其上提供抽象。

根据您的问题的措辞(您使用对象来表示应用程序数据)我建议您使用Data Mapper。这样的Data Mapper在您的对象和数据库之间进行映射。由于您可能使用RDBMS,因此您需要一个Object-Relational-Mapper(ORM)。

有几种选择。由于您使用的是.NET Framework 3.5,因此可以使用Microsoft提供的Linq-To-Sql或Entity-Framework,并且具有良好的IDE集成。其他选项是NHibernate等。这里有很多关于它的信息。