【问题标题】:vb.net Property access must assign to the property or use its value in windows formsvb.net 属性访问必须分配给属性或在 windows 窗体中使用它的值
【发布时间】:2013-12-22 13:46:29
【问题描述】:

我正在使用 vb.net windows 应用程序

在我的加载事件中,我给出了这样的代码,用于将数据从不同的表加载到我的 datagridview。

为此,我给出了这样的代码:

Dim da As New SqlDataAdapter
Dim cmd As New SqlCommand("select M.Model,c.Colname,ma.Make from Model_tbl M join Color_tbl C on c.colid=M.mdlid join Make_tbl ma on ma.mkid=c.colid  where mdlid=5", con.connect)
        Dim builder As SqlClient.SqlCommandBuilder = New SqlCommandBuilder(da)

        da.SelectCommand = cmd
        da.Fill(ds, "MyTable")
        If (ds.Tables(0).Rows.Count > 0) Then
            DGV.DataSource = ds.Tables("MyTable")

        End If

单击更新按钮时,我想将数据从我的 datagridview 更新到不同的表。所以我在更新按钮事件中编写了这样的代码。

 Me.Validate()
            da.UpdateCommand(ds.Tables("MyTable"))
            Me.ds.AcceptChanges()

但我在这一行遇到错误:

da.UpdateCommand(ds.Tables("MyTable"))

错误:

属性访问必须分配给属性或使用它的值。

【问题讨论】:

    标签: sql sql-server vb.net datagridview


    【解决方案1】:

    你不觉得吗

    da.UpdateCommand(ds.Tables("MyTable"))
    

    你应该这样做

    da.Update(ds.Tables("MyTable"))
    

    da.UpdateCommand 是一个属性而不是一个方法,你使用它来set the update command,就像你使用select command一样

    Dim cmd As New SqlCommand("select M.Model,c.Colname,ma.Make from Model_tbl M join Color_tbl C on c.colid=M.mdlid join Make_tbl ma on ma.mkid=c.colid  where mdlid=5", con.connect)
            Dim builder As SqlClient.SqlCommandBuilder = New SqlCommandBuilder(da)
    
            da.SelectCommand = cmd
    

    还要注意

    必须在调用 Fill 之前设置 SelectCommand 属性 数据适配器的方法。 InsertCommand、UpdateCommand 或 DeleteCommand 属性必须在 Update 方法之前设置 调用 DataAdapter,具体取决于对数据所做的更改 在数据表中。例如,如果已添加行,则 必须在调用 Update 之前设置 InsertCommand。当更新是 处理插入、更新或删除的行时,DataAdapter 使用 相应的 Command 属性来处理操作。

    如果调用了 Update 并且不存在相应的命令 特定的更新(例如,对于已删除的行没有 DeleteCommand),一个 抛出异常。

    还请注意,您只能使用CommandBuilder 为单个表生成命令,而不是像您拥有的连接表。您必须明确设置更新命令。

    【讨论】:

    • 如果我给出这样的错误:不支持对多个基表进行动态 SQL 生成。
    • 表示需要显式设置updatecommand(或insertcommand,deleteCommand,见编辑)属性,因为它无法动态生成更新所需的sql。看到这个链接social.msdn.microsoft.com/Forums/en-US/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多