這是我的代碼:ASP.NET和SQL Server的DateError
protected void Page_Load(object sender, EventArgs e)
{
DateOfBirth.Text = Session["DateOfBirth"].ToString();
Member.Text = Session["Member"].ToString();
}
protected void btn_Confirm_Click(object sender, EventArgs e)
{
SqlConnection cnn;
SqlCommand cmd;
string sql = "INSERT INTO Member (MemberJoinDate,DateOfBirth) VALUES (@MemberJoinDate,@DateOfBirth)";
cnn = new SqlConnection(SqlDataSource1.ConnectionString);
try
{
cnn.Open();
cmd = new SqlCommand(sql, cnn);
cmd.Parameters.Add("@MemberJoinDate", SqlDbType.Date);
cmd.Parameters["@MemberJoinDate"].Value = Member.Text;
cmd.Parameters.Add("@DateOfBirth", SqlDbType.Date);
cmd.Parameters["@DateOfBirth"].Value = MemberID.Text;
cmd.ExecuteNonQuery();
cmd.Dispose();
cnn.Close();
btn_Confirm.Visible = false;
}
catch (Exception ex)
{
Response.Write(ex);
}
輸入之後:
Name : Random
Members Join Date : 08/23/2015
Date of birth : 08/23/2015
我得到這個錯誤:
System.FormatException:無法將參數值從 字符串轉換爲DateTime。
System.FormatException:String不是 被識別爲有效的DateTime。
在System.DateTimeParse.Parse(字符串s的DateTimeFormatInfo dtfi,DateTimeStyles樣式)
在System.Convert.ToDateTime(字符串值,的IFormatProvider提供商)
在System.String.System.IConvertible.ToDateTime(的IFormatProvider提供商)
在System.Convert.ChangeType(對象值,類型conversionType, 的IFormatProvider提供商)
在System.Data.SqlClient.SqlParameter.CoerceValue(對象值,元類型 destinationType,布爾& coercedToDataFeed,布爾& typeChanged, 布爾允許流)內部異常堆棧跟蹤的
--- ---完
在System.Data.SqlClient.SqlParameter.CoerceValue(對象值,元類型 destinationType,布爾& coercedToDataFeed,布爾& typeChanged, 布爾allowStreaming)
在System.Data.SqlClient.SqlParameter.GetCoercedValue()
在System.Data.SqlClient.SqlParameter.Validate(的Int32索引,布爾 isCommandProc)
在System.Data.SqlClient.SqlCommand.BuildParamList(TdsParser解析器, SqlParameterCollection參數)
在System.Data.SqlClient.SqlCommand.BuildExecuteSql(的CommandBehavior 行爲,字符串的CommandText,SqlParameterCollection參數, _SqlRPC & RPC)
在System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(的CommandBehavior cmdBehavior,RunBehavior runBehavior,布爾returnStream,布爾 異步,的Int32超時,任務&任務,布爾asyncWrite,SqlDataReader的 DS)
在System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,RunBehavior runBehavior,布爾returnStream,字符串 方法,TaskCompletionSource`1完成Int32超時,任務&任務, 布爾asyncWrite)
在System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 完成,字符串methodName中,布爾sendToPipe,的Int32超時, 布爾asyncWrite)
在System.Data.SqlClient.SqlCommand.ExecuteNonQuery( )
在Summary.btn_Confirm_Click(對象發件人,EventArgs的)
您需要將文本輸入'Member.Text'轉換爲.NET'DateTime'第一個對象,然後將其設置爲參數的值。 –
是MM/DD/YYYY格式的08/23/2015嗎?這可能不是當前文化正在使用的格式。嘗試23/08/2015。 – StingyJack
MemberID真的是出生日期嗎?我懷疑你正在嘗試使用錯誤控件的值。它應該來自您的避孕日期,而不是MemberID。 –