0

gridviewとsqldatasourceがあります。

データベースに新しいレコードを挿入しようとしています。日付の列タイプは日付で、デフォルトの形式はUS、mm / dd / yyyyで、別の形式で日付を挿入しようとしています。

  SqlDataSource2.InsertCommand = "Insert into test (Name,Date) VALUES (@Name,@CONVERT(Date,'@Date',104))";
        SqlDataSource2.InsertParameters.Add("Name", nameText);
        SqlDataSource2.InsertParameters.Add("Date", DbType.DateTime, date.Text);

次のようになります。文字列が有効な日時として認識されませんでした。

ありがとう

4

2 に答える 2

4

データベース内の形式にとらわれない日付型 (文字列として保存しない場合)。

最初にまたはを使用して有効なSystem.DateTimeオブジェクトを取得してみてください。DateTime.ParseExactDateTime.Parse

次に、この値で SqlParameter を設定します。

DateTime dateValue = DateTime.Parse(date.Text); // try to make this working first.
SqlDataSource2.InsertCommand= "Insert into test (Name,Date) VALUES (@Name,@Date)";
    SqlDataSource2.InsertParameters.Add("Name", nameText);
    SqlDataSource2.InsertParameters.Add("Date", DbType.DateTime, dateValue);
于 2012-06-15T07:51:21.883 に答える
2

DateTimeまず、の代わりにオブジェクトを使用する必要がありますDate.Text。最初にテキストをに変換します。DateTime

次に、データ型がSQLServerテーブルのdatatimeである場合は、挿入時に日時をフォーマットする必要はありません。

"Insert into test (Name,Date) VALUES (@Name, @Date)";   

でデータを取得するときに日時をフォーマットする必要がありますselect

于 2012-06-15T07:49:54.100 に答える