5
string con = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;

        SqlConnection cn = new SqlConnection(con);
        string insert_jobseeker = "INSERT INTO JobSeeker_Registration(Password,HintQuestion,Answer,Date)"
      + " values (@Password,@HintQuestion,@Answer,@Date)";

        SqlCommand cmd = new SqlCommand();
        cmd.Connection = cn;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = insert_jobseeker;

 cmd.Parameters.Add(new SqlParameter("@Password", SqlDbType.VarChar, 50));
            cmd.Parameters["@Password"].Value = txtPassword.Text;
            cmd.Parameters.Add(new SqlParameter("@HintQuestion", SqlDbType.VarChar, 50));
            cmd.Parameters["@HintQuestion"].Value = ddlQuestion.Text;
            cmd.Parameters.Add(new SqlParameter("@Answer", SqlDbType.VarChar, 50));
            cmd.Parameters["@Answer"].Value = txtAnswer.Text;

            **cmd.Parameters.Add(new SqlParameter("@Date", SqlDbType.DateTime));
            cmd.Parameters["@Date"].Value = System.DateTime.Now**

エラーが発生しました

「SqlDateTimeオーバーフロー。1753年1月1日午前12:00:00から午後12/31/999911:59:59までの間にある必要があります。」

これに対する解決策は何ですか?

4

3 に答える 3

2

@DateSQL Server 側の Type を に変更してみてくださいDATETIME2(7)

次に、コードで代わりに次の行を使用します。

cmd.Parameters.Add(new SqlParameter("@Date", SqlDbType.DateTime2)); 

コードは示されているように問題ないように見えますが、ローカリゼーションの問題または地域/時間の設定に問題があるために変換で何かが起こっている可能性があるため、これが機能するかどうかを確認してください.

于 2013-03-22T09:11:13.203 に答える
0

「日付」はキーワードです。列名として使用しないでください。必要に応じて、insert ステートメントで [] で囲みます。

于 2013-03-22T09:12:58.793 に答える
0

以上で作業している場合はSQL Server 2008、次のことができます。

ステップ 1:@Dateデータ型を からDATETIMEに変更しますDATETIME2(7)

ステップ 2: コード ビハインドで、これを使用します。

SqlDbType.DateTime2
于 2013-03-22T09:02:55.047 に答える