江湖救急,发的第三张贴,大侠请进。

guhonglangzi001 2010-09-08 12:40:32
问题:软件开发,在软件中怎么存储数据,用什么存储?不用sqlserver。求个解决方案。

注:存储数据的方式类似在sqlsever中的存储,增删查改,重要是数据表。

谢谢各位大侠,在下都发了三张贴了,希望能解决问题。
...全文
189 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-09-08
  • 打赏
  • 举报
回复
你要先确定用不用数据库
用,非sqlserver,有很多选择,access,sqlite,mysql,sybase,oracle都可以。
不用,自己实现类似操作,文件读写,或是xml做数据源。
种草德鲁伊 2010-09-08
  • 打赏
  • 举报
回复
sqlite / access / xml 行吗?
q107770540 2010-09-08
  • 打赏
  • 举报
回复
你可以使用XML来存储
sweetqueen1 2010-09-08
  • 打赏
  • 举报
回复
xml文件
fjkjfwjo 2010-09-08
  • 打赏
  • 举报
回复
xml呀,和sql数据库差不多的,读取很方便
guhonglangzi001 2010-09-08
  • 打赏
  • 举报
回复
“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 { }
}
}


}
}
guhonglangzi001 2010-09-08
  • 打赏
  • 举报
回复
“XML+Linq...单机小数据量效果和数据库一样...”,谢谢还没用过 。
bourbon1795 2010-09-08
  • 打赏
  • 举报
回复
xml也是不错的选择,特别是使用linq,查询起来很快很方便。
bourbon1795 2010-09-08
  • 打赏
  • 举报
回复
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
这个是架构文件。

shuai13869896140 2010-09-08
  • 打赏
  • 举报
回复
文件操作你都可以实现的```
iceswordman 2010-09-08
  • 打赏
  • 举报
回复
选择是比较多。
村长_乐 2010-09-08
  • 打赏
  • 举报
回复
你想要存储什么数据?很多储存的载体啊,看你适合那个了
sqlite / access / xml / file.readalltext / writealltext(有的是直接拿楼上的...呵呵)
Neil198 2010-09-08
  • 打赏
  • 举报
回复
SQLite
HolyPlace 2010-09-08
  • 打赏
  • 举报
回复
不用数据库就用 xml
vrhero 2010-09-08
  • 打赏
  • 举报
回复
XML+Linq...单机小数据量效果和数据库一样...
guhonglangzi001 2010-09-08
  • 打赏
  • 举报
回复
谢谢,各位不用数据库。
gfsdrgsdf 2010-09-08
  • 打赏
  • 举报
回复
为什么要这样 是要做临时 还是 用别的方式
用别的方式 楼上讲了很多了 差不多久那些
shenrujun 2010-09-08
  • 打赏
  • 举报
回复
你是不是不要存到数据库中啊,那就存在到文件中xml,txt,要用的时候再解析出来好了
porschev 2010-09-08
  • 打赏
  • 举报
回复
access
gaomeng320 2010-09-08
  • 打赏
  • 举报
回复
留个名先~
加载更多回复(6)
代码转载自:https://pan.quark.cn/s/a4b39357ea24 基于VHDL语言的24进制多功能数字钟 FPGA多功能数字钟设计 安装要求 本项目采用QuartusII9.0版本设计,非9.0版本打开可能会存在兼容性问题。 本项目选用FPGA器件为CycloneIII_EP3C40Q240C8 设计任务 设计一个24进制多功能数字电子钟,要求具备以下功能: (1)时钟显示:能够以十进制在7段数码管上显示“时”、“分”、“秒”、“十分之一秒”。 (2)校表功能:能够对时钟进行校正。 (3)启动/暂停功能:能够控制时钟的启动和暂停。 (4)一键清零功能:能够将时钟清零。 (5)整点报时功能:能够在整点时出报时信号。 (6)闹钟功能:能够在设置的时间到达时出闹钟信号。 顶层设计原理图如下: image 设计方案/设计原理及总体框图 设计实现思路: (1)计时功能。 计时功能主要由四个计数器模块共同构成,其中十分之一秒计时器为十进制计数、分,秒计时器为六十进制计数、小时计时器为二十四进制计数。 计时器之间采用进位信号进行串联。 (2)十进制7端数码管显示功能。 显示功能由译码器模块实现。 译码器模块的两个输入端分别为刷新端和数据端。 七个译码器的刷新端连接十分之一秒的周期脉冲信号。 而数据端连接计数器的输出端,用以将4位输出BCD码译码为7端数码管的七位显示信号。 (3)校表功能。 校表功能由二选一模块和校时模式选择器模块构成。 其中二选一模块用于连接下一级计时器模块的进位信号和手动按钮脉冲信号。 当控制信号为“0”时,二选一模块输出计时器模块的进位信号。 而当控制信号为“1”时,二选一模块输出手动按钮信号。 控制信号由校时模式选择器模块输出,校时模式选择器输出端连...
内容概要:本文围绕基于交替方向乘子法(ADMM)的多主体综合能源系统分布式协同优化展开研究,提出一种可在保护各参与主体数据隐私的前提下实现全局协同优化的分布式算法框架。通过构建增广拉格朗日函数,将集中式优化问题分解为多个子问题,各主体并行迭代求解并仅交换边界变量信息,从而在保证隐私安全的同时实现系统整体能效与经济性的提升。研究详细阐述了ADMM算法的数学建模过程、收敛性条件及其实现在多主体电-热-气综合能源系统中的应用,并通过Matlab代码进行仿真验证,展示了其在园区、微电网群等场景下的有效性与实用性。; 适合人群:具备一定电力系统优化、分布式算法理论基础及Matlab编程能力的研究生、科研人员以及从事综合能源系统、能源互联网、智能电网等相关领域的工程师;特别适合关注分布式优化、隐私保护协同调度等前沿方向的专业技术人员。; 使用场景及目标:①应用于多主体异构能源系统的协同调度,如工业园区、城市能源网络、微电网集群等复杂场景;②实现各利益主体在不共享原始负荷、成本等敏感数据的情况下完成联合优化,提升系统整体运行效率;③为ADMM算法在实际能源系统中的工程化部署提供可复现的代码实例与完整技术路径参考。; 阅读建议:建议读者结合提供的Matlab代码逐模块理解算法实现细节,重点掌握增广拉格朗日函数构造、对偶变量更新机制与收敛判据的设计;同时可进一步拓展学习一致性ADMM(C-ADMM)、乘子惩罚方法等改进算法,深化对分布式优化理论体系的理解。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧