2012-01-18 23 views
0

SQL Serverテーブルにdatetimepicker値から値を挿入しようとしています。SQL Server 2008にdatetimepicker値を挿入

は私のテーブルには、私もこの

DateTime date = DateBox.Value.Date; 
string sDate = date.ToString("dd-MM-yy", System.Globalization.CultureInfo.InvariantCulture); 
DateTime dateInsert = Convert.ToDateTime(sDate); 
を使用して、この

var date = new DateTime(dateTimePickerText); 

を使用も

string dt = dateTimePicker.Value.ToString("yyyy-mm-dd hh:MM:ss"); 

Insert into profile (id, DateofBirth) 
values(id, CONVERT(datetime, CONVERT(varchar(11), dt, 101)); 

に日時ピッカー値を変換するために、これを試してみましたが、この

Profile (Id, Name,..., DateofBirth(date)...) 

のように見えます

ただし、データベースに日付を挿入することはできません。第2に、データベースから日付を取り戻すにはどうすればいいですか?

+0

1)エラーメッセージは何ですか? 2)SQL SELECTを実行します。それはおそらくあなたが探している答えのようなものではありませんが、あなたが探しているものは想像できません。あなたはあなたの問題についてより具体的にすることができますか?「どうすれば取り出すことができますか? SQLCommandオブジェクト、Linq、またはデータセットを使用していますか?詳細はどうぞ。 –

+0

日付は、cmd.Parameters.Add( "@ DateofBirth"、SqlDbType.DateTime).Value = dateTimePickerを使用してデータベースに保存されましたが、今私はそれを取り戻してdolike if if(dateStored = datetime.now())私がやる? – buddy

答えて

10

SqlParameterを使用する必要があります。

sql="Insert into profile (id, DateofBirth) values (@id,@DateofBirth)"; 
    using(SqlCommand cmd=new SqlCommand(sql,conn)) 
    { 
     cmd.Parameters.Add("@id",SqlDbType.Int).Value=10; 
     cmd.Parameters.Add("@DateofBirth",SqlDbType.DateTime).Value=dateTimePicker.Value; 

     conn.Open(); 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
    } 
+0

それはうまく動作しますが、このコマンドの挿入中** cmd.Parameters.Add( "@_ name"、SqlDbType.VarChar).Value = NameBox.Text; **プロンプトが無効です...挿入方法 – buddy

+0

サイズ:cmd.Parameters.Add( "@ _ name"、SqlDbType.VarChar、40).Value = NameBox.Text; – adatapost

+0

** cmd.Parameters.Add( "@ AccountId"、SqlDbType.Int).Value = AccountInformation.AccountId; **ここでAccountInformation.AcountIdには整数値が含まれています。エラーは** varchar値 '@AccountId'をデータ型intに変換すると変換できませんでした。** – buddy

2

個人的には、すべてのSQLクエリにパラメータを使用するという習慣があります。あなたはSQLインジェクション攻撃ベクトルを回避し、datetimeとしてパラメータタイプを指定することもできます。例えば、this answerを参照してください。

関連する問題