使用 linq 或 sql 在 VB.NET 中添加一行

Add a row using linq or sql in VB.NET

我正在开发一个应用程序,作为其中一个步骤,我需要将一组信息备份到 SQL 数据库。

我没有任何使用 SQL 的经验,希望我能找到一个简单的命令来添加一行我需要的信息...但我不明白我为它找到的大部分信息。我什至在使用 Visual Studio.

中提供的代码片段时遇到了问题

我尝试使用代码片段添加一行,这是生成的代码。

对 RDataSet.ArchivedIncidentsDataTable 的引用一直给我一条错误消息,告诉我 "object reference to non-shared object requires an object reference",对我来说,这是您可能收到的最没有帮助的错误消息之一。我不明白这意味着什么,或者我需要做什么才能修复它。 这是我的代码,基本上只是提供的代码片段:

    Private Sub Save_SQLBackup_Info()
        Dim newRow = CType(RDataSet.ArchivedIncidentsDataTable.NewRow(), RDataSet.ArchivedIncidentsRow)
    newRow.CustomerID = "A124"
    newRow.CompanyName = "Acme"
    RDataSet.ArchivedIncidentsDataTable.Rows.Add(newRow)

End Sub

我不确定为这么少量的代码填写字段是如何产生错误的。

还有,这段代码是运行之后,难道我不用运行一个更新数据库的命令吗?我一直在网上关注的指南都引用了类似的内容,但我不理解其中的其他部分。

我确定我遇到的问题是 "You didn't declare X." 的问题,但是我对 SQL 了解不多...如果这就是我正在使用的。 我将不胜感激一些指导。 我需要做的就是使用表单中的几个字段向数据库添加一行。

我有一个作为数据对象链接的在线 SQL 服务器,数据集名为 RDataSet,数据 table 名为 ArchivedIncidentsDataTable。 我在网上找到的少数指南提到了我没有的不同部分,例如数据适配器,和/或没有提到他们是如何到达那部分的……我完全迷路了。

是否有任何类型的单行命令我可以 运行 将我想添加到该数据库中的一行的信息发送出去?我不明白为什么要这么复杂...

编辑: 答案之一是将数据集的一个实例拖到表单上。 这样做并尝试引用它之后,我现在收到一条错误消息,告诉我:

"Access of shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated.

此消息出现在自动更正选项下,让我可以选择用 RDataset 替换我添加到表单中的数据集 RDataSet1。

将鼠标悬停在代码 "RDataSet1.ArchivedIncidentsDataTable.NewRow()" 上时,我仍然看到错误消息 "Object Reference requires an object reference"。

留言

object reference to non-shared object requires an object reference

意味着您正在尝试访问 class 的成员,就像它是共享成员一样,但事实并非如此,因此您需要 class 的实际实例(对象引用)。

如果您正在使用 WinForms,您只需将 RDataSet 拖到 Form 上,它应该会在您的 Form 中生成一个名为 RDataSet1 或类似的东西(我假设你使用了 Visual Studio 的数据集设计器)。

然后使用 RDataSet1(对象引用)代替 RDataSet(类型)。