c# sql server 读取数据库中最后一行的数据 然后每个字段的数据赋值给一个变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# sql server 读取数据库中最后一行的数据 然后每个字段的数据赋值给一个变量相关的知识,希望对你有一定的参考价值。

我的表结构:Id 字段一(float) 字段二(float) 字段三(float) 字段四(float)。
效果:float a,b,c,d;
a=字段一;
b=字段二;
c=字段三;
d=字段四;
我是初学者,不懂,做个计算器,要用到这点。希望得到帮助。我没有财富了,谢谢啊

你可以用SqlDataReader来读数据库,然后用一个DataSet装起来
查询语句为:select top 1 id from tablename order by id DESC;//id为你数据库的主键列
读取数据后就直接赋值就是了
具体的我也不是很清楚了,好像是dataset.表[索引].行[索引].列[索引].ToString();
反正大概是这样吧,呵呵,见笑了
参考技术A 你可以这样取
SELECT TOP 1 FROM TABLE ORDER BY id DESC
id为标识列,自增字段,DESC降序排列

将 c# 对象存储在 sql server 数据库中

【中文标题】将 c# 对象存储在 sql server 数据库中【英文标题】:Store c# object in sql server database 【发布时间】:2017-12-04 09:41:22 【问题描述】:

我想在 SQL Server 中存储一个 c# 对象。我考虑了以下选项:

    读取对象字节内存流并将它们保存到数据库中(但 在 sql 中不可读) Json,可读,易于转换,但是什么数据类型? (仅 sql 2016 的数据类型) XML,可读性差一点,容易转换,有一个XML dataType

将 C# 对象存储在 sql 列中的最佳做法是什么?为什么? 我使用的是 SQL 2014,所以我认为选项 3 是最好的?

编辑: 注意:它不是要查询的数据,我只想将我缓存的对象加载到内存中的 c# 对象中。并在 c# 中执行一些逻辑。从另一个数据库获取数据只需要一段时间,因此我将所有数据保存在自定义对象中。因此我认为我不应该使用 ORM

【问题讨论】:

人们通常使用实体框架等 ORM 工具。通常您不仅要存储它们,还要查询。 这实际上是选项 2 和 3 之间的偏好问题。我自己更喜欢 XML,但是 XML 或 JSON 都有有效的参数。 只存储这样的动态对象 - 如果你有一个类型化的类,请使用 @AlexeyZimarev 建议的 ORM。 您不需要 JSON 数据类型。只需将其存储为nvarchar(max) 并完成... XML 速度较慢且占用更多空间 @AlexeyZimarev 如果 OP 正在序列化对象,你为什么建议 OP 之后不能读回它?如果 OP 想要另一个表而不仅仅是一列,我同意使用 ORM 【参考方案1】:

如果只是放入数据库以便稍后通过键读回,则使用 (2) 并仅使用 nvarchar(max) 字段类型。

如果是要查询的数据,那么您可能应该设计一个模式来匹配并使用 ORM。

【讨论】:

要让 ORM 在这里工作,OP 需要另一个表和一个外键,您应该在详细信息中包含这些内容 我不能使用 ORM。因为我想在内存中存储所有数据 +- 200MB 来进行分析。但这需要大约。 2 天收集 200MB 数据(来自 azure 表存储)。因此,我想将它存储在某个地方,以防我的应用程序需要重新启动并清理我的内存。 为什么 ORM 会阻止您快速存储 200MB 或快速检索它?即使这确实降低了速度,为什么不在本地机器上安装 SQL Express 并将数据存储在那里呢?这样,您可以使用 ORM 而不会出现速度问题。 这与获取数据或快速存储数据无关。这只是因为我需要对所有数据(不是子集)进行大量计算。这在 C# 中要快得多。而且我所有的逻辑都在 c# 中,包括许多用于验证逻辑的单元测试。 @CamiloTerevinto - 是的 - 对于 ORM,它可能需要多个表和大量 FK,因此“设计一个匹配的模式”。【参考方案2】:

如果您对选项 B 更积极,那么您可以将任何对象[或数据类型]的 json 序列化字符串作为 NVARCHAR(MAX) 字段存储在 sql server 中。

当您想阅读它时,您可以轻松地以原始格式反序列化该字符串。

例如

Demo d1=new Demo();

//store this json into database.
string json= JsonConvert.SerializeObject(d);

// Now while reading fron db
Demo d2= JsonConvert.DeserializeObject<Demo>(json);

【讨论】:

【参考方案3】:

我会选择 JSON 序列化,它只是文本,因此在存储“用户配置文件设置”或其他类型的结构数据时,您可以使用任何语言读写 JSON。现在 SQL 服务器也理解了这一点,就像 8 到 10 年前大肆宣传的 XML 支持一样,现在可以存储 JSON 并为需要更新数据的人提供大量 TSQL 支持,比如当您需要修复所有问题时所有用户的更新...

无论如何,看看这篇文章。 JSON in SQL Server 2016-2017 在往返 JSON 时,您应该测试您的属性,因为某些数据类型可能无法很好地来回转换,具体取决于日期和十进制值等区域特定设置。

【讨论】:

以上是关于c# sql server 读取数据库中最后一行的数据 然后每个字段的数据赋值给一个变量的主要内容,如果未能解决你的问题,请参考以下文章

使用 Sql Server 从 C# 中的读取器读取数据

C#利用SqlDataReader读取SQL Server数据表

C# 读取sql server数据库数据方法

如何使用 C# 从 sql server 读取时间戳类型的数据?

SQL Server - 读取第一行并删除

Query Sql Server 能够删除表的最后一行