这是我第一次尝试使用Entity Framework。
我创建了一个包含一个表(Paths)和两个属性(PathID,PathName)的数据库。在vb-net中,我只希望用户选择一个带有FolderBrowserDialog的文件夹,并将该文件夹的路径保存在“PathName”列中。运行时,我收到错误“Argument'Prompt'无法转换为'String'类型”
代码很简单直接,所以我无法弄清楚我做错了什么。
Public Class AddPaths
Dim Db_EF As New vs_check_work_Entities
Dim tbl_path As New Paths
Private Sub AddPaths_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub btn_AddPath_Click(sender As Object, e As EventArgs) Handles btn_AddPath.Click
Try
Dim FldrBrser As New FolderBrowserDialog
If FldrBrser.ShowDialog = DialogResult.OK Then
TxtBoxPath.Text = FldrBrser.SelectedPath
With tbl_path
.PathName = FldrBrser.SelectedPath
End With
Db_EF.Paths.Add(tbl_path)
Db_EF.SaveChanges()
End If
Catch ex As Exception
MsgBox(ex.Message)
'MsgBox(ex.InnerException)
End Try
End Sub
Private Sub PathsBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles PathsBindingNavigatorSaveItem.Click
Db_EF.SaveChanges()
End Sub
结束班
错误发生在
Db_EF.Paths.Add(tbl_path)
我还试着在桌子上添加一个字符串进行测试:
With tbl_path
.PathName = "hello world"
End With
Db_EF.Paths.Add(tbl_path)
Db_EF.SaveChanges()
我得到同样的错误。
答案 0 :(得分:0)
可能需要查看您的实体模型。但是,我认为您的表上有一个名为Prompt的数据库属性。可能是Prompt被定义为字符串以外的东西,但数据库需要nvarchar(或varchar)。
答案 1 :(得分:0)
我的整个EF项目设置不正确。我想我先做了代码。现在我尝试从Designer开始,一切运作良好。不知道问题是什么,但它现在有效。