SQL Server CE 查询没有效果? [英] SQL Server CE query having no effect?
问题描述
我正在尝试将行插入到 SQL Server CE 数据库中,它返回 1 行受到影响,没有例外,并且就我所见,查询中没有语法错误 - 但它没有任何效果,当我从数据库资源管理器查看表格时.
I'm attempting to insert rows into a SQL Server CE database, and it's returning that 1 row is affected, there's no exception, and no syntax error in the query as far as I can see - but it's having no effect, when I look in the table from the Database Explorer.
如果我通过 VS 运行查询,一切正常.据我所知,没有连接问题......我在这里做错了什么?
If I run a query through VS, everything works fine. There's no connection problem as far as I can tell... what am I doing wrong here?
这是代码,虽然它可能没有什么区别:
Here's the code, though it probably doesn't make a difference:
Using conn As New SqlCeConnection(My.Settings.DietSafetyCheckerReportsConnectionString)
conn.Open()
Using cmd As SqlCeCommand = conn.CreateCommand()
cmd.CommandText = "INSERT INTO Reports(PatientID, PreparedBy, PreparedFor, WeightInKilos, HeightInMeters, Age, PercentBodyFat, ElbowMeasurementInCentimeters, ReportDate, Gender) " &
"VALUES(@pid, @pby, @pfor, @weight, @height, @age, @bodyfat, @elbow, @rdate, @gender);"
cmd.Parameters.Add("@pid", SqlDbType.NVarChar, 100).Value = Me.PatientID
cmd.Parameters.Add("@pby", SqlDbType.NVarChar, 100).Value = Me.PreparedBy
cmd.Parameters.Add("@pfor", SqlDbType.NVarChar, 100).Value = Me.PreparedFor
cmd.Parameters.Add("@weight", SqlDbType.Float).Value = Me.WeightInKilos
cmd.Parameters.Add("@height", SqlDbType.Float).Value = Me.HeightInMeters
cmd.Parameters.Add("@age", SqlDbType.TinyInt).Value = Me.Age
cmd.Parameters.Add("@bodyfat", SqlDbType.Float, 100).Value = Me.PercentBodyFat
cmd.Parameters.Add("@elbow", SqlDbType.TinyInt, 100).Value = Me.ElbowMeasurementInCentimeters
cmd.Parameters.Add("@rdate", SqlDbType.DateTime).Value = Me.ReportDate
cmd.Parameters.Add("@gender", SqlDbType.TinyInt, 100).Value = Me.Gender
If cmd.ExecuteNonQuery() <> 1 Then Throw New ApplicationException("Failed to insert row into databse.")
End Using
conn.Close()
End Using
(顺便说一句,这也行不通:
(By the way, this also doesn't work:
Using da As New SqlCeDataAdapter("SELECT * FROM Reports", conn)
Dim ds As New DietSafetyCheckerReportsDataSet()
Dim dt As DietSafetyCheckerReportsDataSet.ReportsDataTable
da.Fill(ds)
dt = DirectCast(ds.Tables("Reports"), DietSafetyCheckerReportsDataSet.ReportsDataTable)
Dim dr As DietSafetyCheckerReportsDataSet.ReportsRow = dt.NewReportsRow()
dr.Age = Me.Age
dr.ElbowMeasurementInCentimeters = Me.ElbowMeasurementInCentimeters
dr.Gender = Me.Gender
dr.HeightInMeters = Me.HeightInMeters
dr.PatientID = Me.PatientID
dr.PercentBodyFat = Me.PercentBodyFat
dr.PreparedBy = Me.PreparedBy
dr.PreparedFor = Me.PreparedFor
dr.ReportDate = Me.ReportDate
dr.WeightInKilos = Me.WeightInKilos
dt.Rows.Add(dr)
da.Update(ds)
End Using
)
推荐答案
查看你的 bin/debug 文件夹,你可能有多个相同数据库文件的副本
Look in your bin/debug folder, you probably have more copies of the same database file
这篇关于SQL Server CE 查询没有效果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!