问题:软件开发,在软件中怎么存储数据,用什么存储?不用sqlserver。求个解决方案。注:存储数据的方式类似在sqlsever中的存储,增删查改,重要是数据表。谢谢各位大侠,在下都发了三张贴了,希望能解决问题。

解决方案 »

  1.   

    sqlite / access / xml 行吗?
      

  2.   

    你要先确定用不用数据库
    用,非sqlserver,有很多选择,access,sqlite,mysql,sybase,oracle都可以。
    不用,自己实现类似操作,文件读写,或是xml做数据源。
      

  3.   

    xml,access,sqllite
    txt都可以实现
      

  4.   

    file.readalltext
    writealltext
    XML操作类
      

  5.   

    excel/xml/txt/ini/access 等等...
      

  6.   

    你是不是不要存到数据库中啊,那就存在到文件中xml,txt,要用的时候再解析出来好了
      

  7.   

    XML+Linq...单机小数据量效果和数据库一样...
      

  8.   

    SQLite
      

  9.   

    你想要存储什么数据?很多储存的载体啊,看你适合那个了
    sqlite / access / xml / file.readalltext / writealltext(有的是直接拿楼上的...呵呵)
      

  10.   

    ADO.net  可以把除了数据库以外的 execel,xml,txt 当作数据源。
    发个txt为数据源的你看看,其他都类似。
                string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;"+@"Data Source=.\;"+"Extended Properties=\"text;HDR=yes;FMT=Delimited\";";
                OleDbConnection conn = new OleDbConnection(connectionString);
                DataTable dt=new DataTable();
                try
                {
                    conn.Open();
                    OleDbDataAdapter da = new OleDbDataAdapter("select * from employee.txt",conn);
                    da.Fill(dt);
                    dataGridView1.DataSource = dt;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }需要两个文件 ,一个是employee.txt,另一个是schema.ini
    --------------employee.txt-----------
    "employeeId","employeeName"
    1,"Tom"
    2,"Joy"
    ---------------schema.ini------------
    [employee.txt]
    Format=CSVDelimited
    ColNameHeader=True
    <axScanRows=0
    Character=OEM
    Col1=employeeId Long Width 4
    Col2=employeeName Text Width 100
    这个是架构文件。
      

  11.   

    xml也是不错的选择,特别是使用linq,查询起来很快很方便。
      

  12.   

    “XML+Linq...单机小数据量效果和数据库一样...”,谢谢还没用过 。
      

  13.   

    “XML+Linq”,应该就是它了,各位大侠能给个xml+Linq的应用实例吗?六楼给的操作类很不错,谢谢。遗憾的是没有用到Linq。
    内容如下:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Xml;namespace tsleyyg.XML
    {
        class opxml
        {
            /// <summary>
            /// XmlHelper 的摘要说明
            /// </summary>
            public class XmlHelper
            {
                public XmlHelper()
                {
                }            /// <summary>
                /// 读取数据
                /// </summary>
                /// <param name="path">路径</param>
                /// <param name="node">节点</param>
                /// <param name="attribute">属性名,非空时返回该属性值,否则返回串联值</param>
                /// <returns>string</returns>
                /**************************************************
                 * 使用示列:
                 * XmlHelper.Read(path, "/Node", "")
                 * XmlHelper.Read(path, "/Node/Element[@Attribute='Name']", "Attribute")
                 ************************************************/
                public static string Read(string path, string node, string attribute)
                {
                    string value = "";
                    try
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.Load(path);
                        XmlNode xn = doc.SelectSingleNode(node);
                        value = (attribute.Equals("") ? xn.InnerText : xn.Attributes[attribute].Value);
                    }
                    catch { }
                    return value;
                }            /// <summary>
                /// 插入数据
                /// </summary>
                /// <param name="path">路径</param>
                /// <param name="node">节点</param>
                /// <param name="element">元素名,非空时插入新元素,否则在该元素中插入属性</param>
                /// <param name="attribute">属性名,非空时插入该元素属性值,否则插入元素值</param>
                /// <param name="value">值</param>
                /// <returns></returns>
                /**************************************************
                 * 使用示列:
                 * XmlHelper.Insert(path, "/Node", "Element", "", "Value")
                 * XmlHelper.Insert(path, "/Node", "Element", "Attribute", "Value")
                 * XmlHelper.Insert(path, "/Node", "", "Attribute", "Value")
                 ************************************************/
                public static void Insert(string path, string node, string element, string attribute, string value)
                {
                    try
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.Load(path);
                        XmlNode xn = doc.SelectSingleNode(node);
                        if (element.Equals(""))
                        {
                            if (!attribute.Equals(""))
                            {
                                XmlElement xe = (XmlElement)xn;
                                xe.SetAttribute(attribute, value);
                            }
                        }
                        else
                        {
                            XmlElement xe = doc.CreateElement(element);
                            if (attribute.Equals(""))
                                xe.InnerText = value;
                            else
                                xe.SetAttribute(attribute, value);
                            xn.AppendChild(xe);
                        }
                        doc.Save(path);
                    }
                    catch { }
                }            /// <summary>
                /// 修改数据
                /// </summary>
                /// <param name="path">路径</param>
                /// <param name="node">节点</param>
                /// <param name="attribute">属性名,非空时修改该节点属性值,否则修改节点值</param>
                /// <param name="value">值</param>
                /// <returns></returns>
                /**************************************************
                 * 使用示列:
                 * XmlHelper.Insert(path, "/Node", "", "Value")
                 * XmlHelper.Insert(path, "/Node", "Attribute", "Value")
                 ************************************************/
                public static void Update(string path, string node, string attribute, string value)
                {
                    try
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.Load(path);
                        XmlNode xn = doc.SelectSingleNode(node);
                        XmlElement xe = (XmlElement)xn;
                        if (attribute.Equals(""))
                            xe.InnerText = value;
                        else
                            xe.SetAttribute(attribute, value);
                        doc.Save(path);
                    }
                    catch { }
                }            /// <summary>
                /// 删除数据
                /// </summary>
                /// <param name="path">路径</param>
                /// <param name="node">节点</param>
                /// <param name="attribute">属性名,非空时删除该节点属性值,否则删除节点值</param>
                /// <param name="value">值</param>
                /// <returns></returns>
                /**************************************************
                 * 使用示列:
                 * XmlHelper.Delete(path, "/Node", "")
                 * XmlHelper.Delete(path, "/Node", "Attribute")
                 ************************************************/
                public static void Delete(string path, string node, string attribute)
                {
                    try
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.Load(path);
                        XmlNode xn = doc.SelectSingleNode(node);
                        XmlElement xe = (XmlElement)xn;
                        if (attribute.Equals(""))
                            xn.ParentNode.RemoveChild(xn);
                        else
                            xe.RemoveAttribute(attribute);
                        doc.Save(path);
                    }
                    catch { }
                }
            }
        }
    }
      

  14.   

    xml呀,和sql数据库差不多的,读取很方便