试图了解Visual Studio中的数据库

已加入
2020年5月15日
留言内容
29
编程经验
Beginner
你好
我正在尝试学习公司中存在的数据库管理系统。我是新来的。到目前为止,有些事情我已经了解了。我想知道我理解的正确与否。所以有这个数据库,当我在Visual Studio中检查时,它是Microsoft Sql Server类型的。首先在Visual Studio中创建一个数据集。然后,使用某种创建SQL Server数据库的软件来创建此Microsoft Sql Server数据库。然后,使用Visual Studio将在Visual Studio中创建的该数据集连接到该Sql Server数据库。这就是我的理解。这样对吗。请告诉我这是正确的。谢谢。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
这是一个非常模糊的描述。如果您实际上是在谈论数据集,那么数据库将必须已经存在。如果您先使用Entity Framework Code,则可以从中生成数据库,但这不是DataSet。如果您想让我们确认某件事是真实的,则需要在描述和术语上更加具体,但是您确实应该询问在该系统中工作的其他人正在做什么。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
听起来我们的OP谈论的是Microsoft在1990年代推迟的严格类型化的数据集,但由于许多开发者不愿使用它,尽管开发人员采用率低,但由于开发人员的采用率低而最终放弃了它:
 
已加入
2020年5月15日
留言内容
29
编程经验
Beginner
这是一个非常模糊的描述。如果您实际上是在谈论数据集,那么数据库将必须已经存在。如果您先使用Entity Framework Code,则可以从中生成数据库,但这不是DataSet。如果您想让我们确认某件事是真实的,则需要在描述和术语上更加具体,但是您确实应该询问在该系统中工作的其他人正在做什么。
数据集是一个.xsd文件,其中不同的表具有不同的列。数据库是Microsoft sql服务器数据库,Visual Studio使用ODBC连接到它。我很确定。还有用于填充程序中数据集的表适配器。这样很好。没有其他人对此提出疑问。完成这个项目的那个人离开了公司,我是他的接班人。他也没有做任何文件记录。因此,这个论坛和所有互联网都是我寻求帮助的地方。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
您目前正在使用哪本书来学习C#?您正在使用哪本书来学习90年代后期的样式键入数据集?
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
数据集是一个.xsd文件,其中不同的表具有不同的列。
是的,我对第3个帖子的猜测是正确的。如果办公室中没有人知道该系统当前的工作方式,则您必须成为自己的专家。是时候花些钱买书了,还是找顾问雇了。就像我说的那样,似乎只有架构师对这种构建数据库的方式大加赞赏,但是普通开发人员(以及我也记得DBA)讨厌它。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
根据建议,您使用的是所谓的"typed DataSet"。那将是从现有数据库生成的,而不是相反的。

使用标准的ADO.NET,可以在应用程序中的数据库表和数据表之间创建一个数据适配器作为代理。您需要提供该数据适配器的SQL代码和参数定义,并且DataTable中的所有数据都将作为对象引用进行访问,因为它需要支持任何类型的数据。

类型化数据集建立在该标准ADO.NET基础上。 IDE工具将生成包含继承或包装标准类型的类型的代码,并添加特定于您的数据库的新成员,这就是通常从现有数据库中生成它的原因。您可以在DataSet设计器中进行更改,但这通常是对自动生成的类型或添加项的修改,而不是从头开始进行构建。

关于类型,标准的DataSet具有一个Tables属性,该属性是一个DataTableCollection,您可以通过提供名称作为字符串来从中获取DataTable。基于原始数据库表中的列,类型化的数据集具有每个数据表的专用属性,并且每个数据表都是专用类型。标准DataTable具有Rows属性,该属性是DataRowCollection。您可以通过对该集合建立索引来获取DataRow,然后可以使用索引或列名从字段中获取数据作为对象引用。可以直接为类型化的DataTable建立索引,以获取类型化的DataRow,并且该DataRow为每个已经具有正确类型的列具有专用属性。例如,不是使用标准的DataSet来执行此操作:
C#:
string fullName = (string) myDataSet.Tables("Person").Rows(0)("FullName");
you would do this with a 键入数据集:
C#:
string fullName = myDataSet.Person(0).FullName;
您将获得表和列名称的完整Intellisense,所有内容都是类型安全的,因此名称"typed DataSet".

可以使用IDE生成的表适配器,而不是使用自己构建的数据适配器。一般来说,您只需要调用Fill即可检索数据,并调用Update来保存数据。所有SQL代码和参数定义都是以包装在表适配器中的数据适配器的形式为您生成的。一个不错的功能是,您可以使用同一个表适配器来执行完整查询和过滤查询。通过调用Fill执行的默认查询有效 "SELECT *" 针对指定的表格。在数据集设计器中,可以将查询添加到表适配器,并添加过滤器或其他所需的逻辑,只要结果集具有与默认查询相同的架构即可。假设您有一个带有SupplierId列的Product表。 Fill方法将检索每个产品记录。您可以像这样添加查询:
SQL:
选择 * FROM Product WHERE SupplierId = ?
并命名关联的方法FillBySupplierId和GetDataBySupplierId。然后,您可以调用FillBySupplierId并提供一个ID作为参数,并在键入的DataTable中获取过滤后的结果。

这只是一个基本的入门。如果您要搜索的话,还有更多的信息"typed DataSets".
 
已加入
2020年5月15日
留言内容
29
编程经验
Beginner
根据建议,您使用的是所谓的"typed DataSet"。那将是从现有数据库生成的,而不是相反的。

谢谢。自从我生病以来我已经离开了一个星期,这就是为什么迟来的答复。因此,我了解的是数据集是从数据库自动创建的。因此,此数据库是在Microsoft SQL服务器 Management Studio中创建的,然后使用visual studio连接到该数据库,这将创建数据集。我对么。
 
最佳 底部