我是Visual Studio和SQL Server的新手。我对如何从visual studio应用程序插入数据感到困惑
我收到System.InvalidCastException错误。我很困惑这是什么问题。
这是我的代码:
PatientInfoConnection.Open() 'open database connection
Dim sql As String = ""
sql = "insert into model (name, age, date_of_confinement, type_of_sickness, type_of_IVfluid, number_of_bottles, drop_rate)" & _
" values (@name, @age, @date_of_confinement, @type_of_sickness, @type_of_IV_fluid, @number_of_bottles, @drop_rate)"
Dim insert As New SqlCommand(sql, PatientInfoConnection)
insert.Parameters.AddWithValue("@name", txtName.Text)
insert.Parameters.AddWithValue("@age", nudAge.Value.ToString())
insert.Parameters.AddWithValue("@date_of_confinement", dtpDate.Value.ToString())
insert.Parameters.AddWithValue("@type_of_sickness", txtSickness.Text)
insert.Parameters.AddWithValue("@type_of_IV_fluid", txtFluid.Text)
insert.Parameters.AddWithValue("@number_of_bottles", txtBottle.Text)
insert.Parameters.AddWithValue("@drop_rate", nudDrop.Value.ToString())
insert.ExecuteNonQuery()
我在想我的价值观存在问题。 nudAge.Value是数字向下,在我的sql数据库中,它是Age(int,null)。我也有dtpDate.Value。日期时间选择器。我想我不应该使用ToString(),但我不知道语法..
任何人都可以帮助我吗?任何帮助,将不胜感激。谢谢!
date_of_confinement是我的数据库中的日期时间。 格式应该是这样的吗? insert.Parameters.AddWithValue(“@ date_of_confinement”,dtpDate.Value.ToShortDateString)
另外,我做到了 insert.Parameters.AddWithValue(“@ number_of_bottles”,Int32.Parse(txtBottle.Text))
但我仍然有错误。我糊涂了。谢谢你的帮助!
这就是我现在所做的...... insert.Parameters.AddWithValue(“@ date_of_confinement”,Date.Parse(dtpDate.Value))
我也做了如下更改:
insert.Parameters.AddWithValue("@age", Convert.ToInt32(txtAge.Text))
insert.Parameters.AddWithValue("@number_of_bottles", Convert.ToInt32(txtBottle.Text))
insert.Parameters.AddWithValue("@drop_rate", Convert.ToInt32(txtDrop.Text))
我不再有错误但是当我点击保存时,它甚至没有做任何事情,甚至关闭表格并打开另一个表格。什么都没做
感谢您的帮助! N,N-
答案 0 :(得分:0)
如果date_of_confinement
是db中的日期时间,则应将其作为Date
传递给SqlParameter。只需删除ToString
即可。 NumericUpDown
值也是如此。
insert.Parameters.AddWithValue("@name", txtName.Text)
insert.Parameters.AddWithValue("@age", nudAge.Value)
insert.Parameters.AddWithValue("@date_of_confinement", dtpDate.Value)
insert.Parameters.AddWithValue("@type_of_sickness", txtSickness.Text)
insert.Parameters.AddWithValue("@type_of_IV_fluid", txtFluid.Text)
insert.Parameters.AddWithValue("@number_of_bottles", Int32.Parse(txtBottle.Text))
insert.Parameters.AddWithValue("@drop_rate", nudDrop.Value)
请注意,我还将txtBottle.Text
解析为整数,因为我假设number_of_bottles
是db中的int
列。