レコードの編集などのデータベース操作に、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
この問題を解決するために時間を割いていただきありがとうございます.....