0

オペレーティング システムにASP.NET & C#常駐するアプリケーションwindows serverを使用しています。使用しているサーバーは. Windows の日時形式をSQL サーバーの日時形式に変更しました。地域設定の日時形式は次のように表示されますが、C# で開発された .NET アプリケーションでは、デバッグ モードでの日時形式が表示されるため、データを SQL データベースに保存できません。 、例外をスローしています。私のアプリケーション内で DatetTime.Now の日時形式を変更する方法について誰かが私を助けてくれれば、私は非常に義務付けられます。windows server 2008 R2VM"en-US""MM/dd/yyyy"DateTime.Now"dd/MM/yyyy""invalid datetime format"

コード スニペットは次のとおりです - 呼び出しセクション -

saveCustomerInfo.saveInfo(txtCustomerId.Text, userNmae, objProperties.ProposalNumber.ToString(), "", "", Total_Amount, SERVICE_TAX, STAMP_DUTY, AgentID, DateTime.Now, null, null, "", "", "", product_code, MODE)

呼び出された関数のシグネチャは -

public void saveInfo(string CustomerID, string UserName, string ProposalNo, string PaymentID, string PolicyNumber, int amount, double serviceTax, double stampduty, string Agent_ID, DateTime? ProposalDate, DateTime? PaymentDate, DateTime? PolicyDate, string ClaimNo, string ClaimAmount, string ClaimStatus, int ProductCode, string mode)

SQL コード セクションは次のとおりです。

public void saveInfo(string CustomerID, string UserName, string ProposalNo, string PaymentID, string PolicyNumber, int amount, double serviceTax, double stampduty, string Agent_ID, DateTime? ProposalDate, DateTime? PaymentDate, DateTime? PolicyDate, string ClaimNo, string ClaimAmount, string ClaimStatus, int ProductCode, string mode)
    {
        string connection = SetConnectionString(SPContext.Current.Site);
        SqlConnection con = new SqlConnection(connection);
        SqlCommand com = new SqlCommand("Select count(ProposalNo) from [aspnetdb].[dbo].[user_info_log] where ProposalNo = '" + ProposalNo + "'", con);
        con.Open();
        Int32 count = (Int32)com.ExecuteScalar();

        if (count == 0)
        {
            //string strFormattedProposalDate = ProposalDate.ToString().Split('/')[1] + "/" + ProposalDate.ToString().Split('/')[0] + "/" + ProposalDate.ToString().Split('/')[2];

            com.Dispose();
            com = new SqlCommand("insert into user_info_log(CustomerID,UserName,ProposalNo,PaymentID,PolicyNo,TotalAmount,ServiceTax,Stampduty,Agent_ID,ProposalDate,PaymentDate,PolicyDate,ClaimNumber,ClaimAmount,ClaimStatus,ProductCode,Mode) VALUES('" + CustomerID + "','" + UserName + "','" + ProposalNo + "','" + PaymentID + "','" + PolicyNumber + "','" + amount + "','" + serviceTax + "','" + stampduty + "','" + Agent_ID + "','" + ProposalDate + "','" + System.DBNull.Value + "','" + System.DBNull.Value + "','" + ClaimNo + "','" + ClaimAmount + "','" + ClaimStatus + "','" + ProductCode + "','" + mode + "')", con);
            com.ExecuteNonQuery();
        }
        con.Close();
        com.Dispose();
    }

エラー コードは次のとおりです: varchar データ型を datetime データ型に変換すると、範囲外の値になりました。ステートメントは終了されました。

4

2 に答える 2

0

それから試してください

this.TextBox3.Text = DateTime.Now.ToString("MM.dd.yyyy");

またはこれを試してください......

string format = "MM/dd/yyyy hh:mm:ss.fff";
DateTime d = DateTime.ParseExact("05/15/2012 10:09:28.650",
                                format,
                                System.Globalization.CultureInfo.InvariantCulture)
于 2013-04-17T05:02:32.383 に答える