0

我是 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)) 

我不再有错误,但是当我单击保存时,它甚至关闭表单并打开另一个表单也没有做任何事情。什么都没做。

谢谢你的帮助!nn

4

1 回答 1

0

如果date_of_confinement是 db 中的日期时间,则应将其作为DateSqlParameter 传递。只需删除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_bottlesintdb 中的一列。

于 2012-07-18T22:54:39.313 回答