2017-08-19 5 views
0

私はC#を初めてお使いで、学習しています。私はテーブルrecordを持っているSQL Serverデータベースを持っていて、dobというデータ型のdateという列を持っています。私は、次のコードasp.netのテキストボックスから日付を挿入中にエラーが発生しました

datebox.Text = "19-08-17"; 

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 
SqlCommand com = new SqlCommand(query, con); 
string query= "insert into record (dob) values(@db)"; 
com.Parameters.AddWithValue("@db", datebox.Text); 
com.ExecuteNonQuery(); 

19-08-17の値を持っている私のテキストボックスからdobに挿入しようとしている。しかし、私は、文字列から日付/時刻を変換する際に、このエラー

変換が失敗した取得します。

どうすればこの問題を解決できますか?あなたは、パラメータとしてDateTime列に変数を渡す場合

+0

自己説明!データベースのカラム型はdateなので、パラメータの設定時に 'datebox.Text'を日付フォーマットに変換します。 –

+0

datetimeの挿入中に文字列から日付または時刻を変換すると変換が失敗しました(https://stackoverflow.com/questions/14119133/conversion-failed-when-converting-date-and-or-time- from-character-string-while-i) –

+1

エラーはそれを自己説明しています:タイプキャストエラー、これを試してください: DateTime.Parse(datebox.Text、CultureInfo.CurrentCulture); –

答えて

0

、あなたはそれを渡す前にDateTime変数にテキストを変換する必要があります。

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].Connect ionString); 

// Convert the textbox text to a DateTime variable 
DateTime myDate = DateTime.ParseExact(datebox.Text, "dd-MM-yy", System.Globalization.CultureInfo.InvariantCulture); 

SqlCommand com = new SqlCommand(query, con); 
string query= "insert into record (dob) values(@db)"; 
com.Parameters.AddWithValue("@db", myDate); 
com.ExecuteNonQuery(); 
+0

はうまく動作しました。私はもう1つあなたに質問したい –

+0

はい、回答を受け入れるために5分待っているシステムを待っています。 –

+0

問題はありません、何を聞きたいですか? –

関連する問題