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

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

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

谢谢各位大侠,在下都发了三张贴了,希望能解决问题。
...全文
191 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)
内容概要:本文档详细介绍了光伏储能单相逆变器并网的Simulink仿真模型,重点聚焦于逆变器在并网过程中的动态行为分析与先进控制策略的设计与实现。该模型涵盖主电路结构、PWM调制技术、锁相环(PLL)同步控制、电流环调节等核心环节,并基于Matulink平台完成系统建模与仿真验证,能够有效研究并网电能质量、系统稳定性及控制算法性能。特别地,模型支持在弱电网条件下进行仿真,适用于分析谐波、电压不平衡、电压波动等电能质量问题,同时结合“阻抗建模”与“扫频法”等技术手段,深入探讨并网系统的交互稳定性与振荡机理,具有较强的理论深度与工程应用价值。; 适合人群:具备电力电子、自动控制理论或新能源电系统基础知识的研究生、科研人员,以及从事光伏逆变器开、微电网控制与并网稳定性研究的工程技术人员。; 使用场景及目标:①用于高校及科研机构开展光伏并网逆变器控制策略的教学演示与学术研究;②辅助企业工程师进行并网性能测试、控制器参数优化与系统稳定性评估;③支撑VSG控制、构网型变流器、阻抗建模、宽频振荡分析等相关前沿课题的仿真验证与论文复现工作。; 阅读建议:建议在MATLAB/Simulink环境中动手搭建并调试模型,逐步理解各模块功能与参数影响,重点关注控制器设计与系统动态响应之间的关系,并结合文中提及的“正负序阻抗建模”“扫频辨识”等方法深化对并网稳定性的理论认识与实践能力。
内容概要:本文针对“计及用户需求响应贡献度的综合能源系统多时间尺度优化”问题,提出了一种基于Matlab代码实现的精细化优化模型。该模型深度融合电、热、气等多种能源形式的耦合特性,构建了涵盖日前、日内及实时等多个时间尺度的协调优化调度框架。研究重点在于量化用户在不同场景下的需求响应行为及其对系统运行的贡献度,并将其纳入优化目标,从而提升综合能源系统的运行经济性、稳定性和灵活性。文中系统阐述了模型的数学建模过程,包括以综合运行成本最小化为核心的目标函数、涵盖能量平衡、设备运行约束及用户响应能力的多重约束条件,并详细说明了基于Matlab的求解算法与代码实现流程,为相关研究提供了可复现的技术路径。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员和工程技术人员,特别适用于从事综合能源系统规划、需求响应机制设计、微电网优化运行等领域研究的专业人士。; 使用场景及目标:①研究多能互补背景下综合能源系统的协同优化调度策略;②量化分析用户需求响应对系统削峰填谷、降低运行成本及提升可再生能源消纳能力的具体贡献;③实现多时间尺度优化模型的设计、仿真与性能验证;④作为高水平学术论文复现、科研课题攻关或实际能源项目规划的技术支撑。; 阅读建议:建议读者结合Matlab代码逐模块深入理解,重点关注目标函数中用户贡献度的建模方法、多时间尺度耦合机制的实现逻辑以及优化求解器的配置与调用。在学习过程中,可尝试调整用户响应参数、引入新的能源设备模型或改变网络拓扑结构进行拓展性实验,以全面掌握综合能源系统优化的核心机理与应用技巧。

111,129

社区成员

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

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

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