我正在尝试使用vb.net将数据存储在sql数据库中。在我的代码中,我使用参数来添加值.. 以下是我的代码:
Dim lclAmount = txtQty.Text * txtUnitPrice.Text
con = New SqlConnection(connectionString)
' con.Open()
query = "INSERT INTO TBLExpensesList (ExpensesType, Purpose, Qty, UnitPrice, Amount, DoP, Description) VALUES (@val1, @val2, @val3, @val4, @val5, @val6, @val7)"
cmd = New SqlCommand(query, con)
cmd.Parameters.Add(cmd.CreateParameter).ParameterName = "@val1"
cmd.Parameters.Add(cmd.CreateParameter).ParameterName = "@val2"
cmd.Parameters.Add(cmd.CreateParameter).ParameterName = "@val3"
cmd.Parameters.Add(cmd.CreateParameter).ParameterName = "@val4"
cmd.Parameters.Add(cmd.CreateParameter).ParameterName = "@val5"
cmd.Parameters.Add(cmd.CreateParameter).ParameterName = "@val6"
cmd.Parameters.Add(cmd.CreateParameter).ParameterName = "@val7"
cmd.Parameters("@val1").Value = ComboBox1.SelectedItem
cmd.Parameters("@val2").Value = txtPurpose.Text
cmd.Parameters("@val3").Value = txtQty.Text
cmd.Parameters("@val4").Value = txtUnitPrice.Text
cmd.Parameters("@val5").Value = lclAmount
cmd.Parameters("@val6").Value = dtpDOP.Value
cmd.Parameters("@val7").Value = txtDesc.Text
If con.State = ConnectionState.Closed Then
con.Open()
End If
' cmd.CommandText = query
' cmd.Connection = con
'Create Data Adaptor
' sqladp.SelectCommand = cmd
'Create & Fill Data Set
'sqladp.Fill(ds, "TBLExpensesList")
'Get Data Table
'dtbl = ds.Tables("TBLExpensesList")
cmd.ExecuteNonQuery()
If con.State = ConnectionState.Open Then
con.Close()
End If
MessageBox.Show("Data Inserted Successfully!", "", MessageBoxButtons.OK, MessageBoxIcon.None)
'Execute Command
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
当useid和密码与数据库中存储的值匹配时,我成功登录到我的项目。但是,当我尝试存储值时,我已成功插入,之后当我尝试读取行时,我得到了一行。 当我关闭我的项目广告时,尝试查看数据库中的值,我在数据库中没有得到任何值。 我也很困惑,为什么值没有存储在数据库????
答案 0 :(得分:1)
您应该阅读Working with local databases。从那里引用(强调我的):
在设计时,数据工具使用MyProject \ Data.mdf。在运行时,应用程序将使用输出文件夹下的数据库。 作为副本的结果,很多人都认为应用程序没有将数据保存到数据库文件。实际上,这只是因为涉及的数据文件有两个副本。通过数据库资源管理器查看架构/数据时也是如此。这些工具正在使用项目中的副本,而不是bin文件夹中的副本。