0

可能重复:
如何使用 linq to sql 的文本框编辑/更新数据库中的记录?

我正在使用 linq to sql 的 Visual Basic 2008 Express Edition 进行我的数据库操作,例如编辑记录。我没有使用任何 sql server,但我只是使用了 visual basic 2008 express 中的内置 sql server。我试图修改代码,语法没有错误,但运行时出现错误,它会弹出一个窗口消息,说明它的错误消息。我想要的是将从数据库中检索到的记录编辑到文本框中,当您单击按钮 5 时,文本框中的新值应替换前一个值。Account字段是 memrec.dbml 中 Table1 中的字段,我为主键设置为 true,其余字段在其主键中为 false。当你运行程序时,下面的代码仍然发现一个错误,它会弹出一个窗口,上面写着:

NotSupportedException 未处理- Sql server 不处理 NText、Text、Xml 或 Image 数据类型的比较。

它突出显示该行的黄色背景:

db.SubmitChanges()

这些是我在 memrec.dbml 属性窗口中 Table1 上每个字段的属性上看到的:

Access - Public
Type - String(System.String)
Server Data Type - Text
Auto-Generated Value - False
Auto-Sync - Never
Delay Loaded - False
Nullable - True
Read Only - False
Time Stamp - False
Update Check - Never
Primary Key - False ' Except for the Account field.

您认为可能的错误是什么?

是在它的设置方面吗?

这是我的代码:


Private Sub Button5_Click(------------------) Handles Button5.Click 
    If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or _
            TextBox4.Text   = "" Then 
        MsgBox("Please Fill It Up Completely", MsgBoxStyle.Exclamation) 
        Exit Sub 
    Else 

        Dim accnt As String 
            accnt = TextBox1.Text 
        Dim db As New memrecDataContext() 

        Dim editrecord = _ 
            From memrec In db.Table1s _ 
            Where memrec.Account.Contains(accnt) _ 
            Select memrec 

        For Each memrec In editrecord 
            If memrec.Account = accnt Then 

                memrec.Account = TextBox1.Text 
                memrec.Name = TextBox2.Text  
                memrec.Address = TextBox3.Text 
                memrec.Gender = TextBox4.Text 
                db.SubmitChanges() 
                Exit Sub 
            End If 
        Exit For 

        Next 

        MsgBox("No Records Match", MsgBoxStyle.Information) 
    End If 
End Sub 

感谢您花时间和我一起解决这个问题......

4

0 回答 0