2.如何使用linq到sql的文本框编辑/更新数据库中的记录?

时间:2009-10-14 09:46:46

标签: c# vb.net linq-to-objects

  

可能重复:
  How to edit/update records from the database using textbox by linq to sql?

我正在使用linq to sql的visual basic 2008 express edition进行数据库操作,例如编辑记录。我没有使用任何sql服务器,但我只是在visual basic 2008 express中使用内置的sql server。我试图修改代码,语法没有错误,但是在运行时出现错误,它会弹出一条窗口消息,说明其错误消息。我想要的是将从数据库中检索到的记录编辑到文本框中,当您单击按钮5时,文本框中的新值应该替换前一个。 帐户字段是我在memrec.dbml中的T​​able1中的字段,我为主键设置的是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 

感谢您抽出时间与我一起解决此问题.....

0 个答案:

没有答案