0

VisualStudioとSQLServerは初めてです。VisualStudioアプリケーションからデータを挿入する方法に混乱しました

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

が db の日時である場合は、SqlParameterdate_of_confinementとして渡す必要があります。Dateを削除するだけ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)

dbの列でtxtBottle.Textあると想定しているため、整数にも解析したことに注意してください。number_of_bottlesint

于 2012-07-18T22:54:39.313 に答える