0

重複の可能性:
linq to sql で textbox を使用してデータベースからレコードを編集/更新する方法は?

レコードの編集などのデータベース操作に、linq to sql による Visual Basic 2008 Express Edition を使用しています。SQL サーバーは使用しませんでしたが、Visual Basic 2008 Express 内の組み込みの SQL サーバーを使用しているだけです。コードを修正しようとしましたが、構文にエラーはありませんでしたが、実行時にエラーが発生し、エラー メッセージを示すウィンドウ メッセージがポップアップ表示されました。私が望むのは、データベースからテキスト ボックスに取得されたレコードを編集し、ボタン5をクリックすると、テキスト ボックスの新しい値が前の値を置き換えることです。Accountフィールドは memrec.dbml の Table1 にあるフィールドで、主キーを true に設定し、残りのフィールドは主キーで false に設定します。以下のコードでも、プログラムを実行するとエラーが検出され、次のようなウィンドウがポップアップ表示されます。

NotSupportedException が処理されませんでした- SQL サーバーは、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