从字符转换日期和/或时间时转换失败 串
我是Asp.net的新手。我想上传图像并将记录保存在它捕获的Sql数据库中"转换失败时转换日期和/或时间来自字符串"。我不知道为什么在运行时遇到此错误。任何人都知道帮助我。它非常有用我的项目
protected void Add_Click(object sender, EventArgs e)
{
if (!FileUpload1.HasFile)
{
Label2.Visible = true;
Label2.Text = "Please Select Image File"; //checking if file uploader has no file selected
}
else
{
int length = FileUpload1.PostedFile.ContentLength;
byte[] pic = new byte[length];
FileUpload1.PostedFile.InputStream.Read(pic, 0, length);
string constr = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd1 = new SqlCommand("insert into Student" + "(RegNo,Name,DOB,Gender,Address,Country,CreatedTime,Picture) values(@RegNo,@Name,@DOB,@Gender,@Address,@Country,@date,@photo)", con);
con.Open();
cmd1.Parameters.AddWithValue("@RegNo", RegNo.Text);
cmd1.Parameters.AddWithValue("@Name", Name.Text);
cmd1.Parameters.AddWithValue("@DOB", Dob.Text);
cmd1.Parameters.AddWithValue("@gender", Gender.SelectedValue);
cmd1.Parameters.AddWithValue("@Address", Address.Text);
cmd1.Parameters.AddWithValue("@Country", Country.Text);
cmd1.Parameters.AddWithValue("@date", DateTime.Now);
cmd1.Parameters.AddWithValue("@photo", pic);
try
{
cmd1.ExecuteNonQuery();
Label2.Visible = true;
Label2.Text = "Image Uploaded Sucessfully";
con.Close();//after Sucessfully uploaded image
}
catch
{
}
}
Response.Redirect("~/WebForm1.aspx");
}
答案 0 :(得分:0)
MS SQl的默认日期时间格式为年 - 月 - 日 您需要将日期时间格式解析为此格式 以下代码是
DateTime.Now.ToString("yyyy-MM-dd");
答案 1 :(得分:0)
DOB可能是您代码中的问题,执行
cmd1.Parameters.AddWithValue("@DOB", Convert.ToDateTime(Dob.Text));
确保Dob.Text是一个合适的日期。
答案 2 :(得分:0)
我认为错误就在这一行:
cmd1.Parameters.AddWithValue("@DOB", Dob.Text);
如果格式正确
,您可以使用Convert.ToDateTime()
进行转换
cmd1.Parameters.AddWithValue("@DOB", Convert.ToDateTime(Dob.Text));
但是,如果不是,则会有一个名为DateTime.ParseExact()的函数,它将使用指定的格式转换指定的日期和时间字符串表示。
例如,您的日期格式为dd/MM/yy
- 31/01/18
string strDob = Dob.Text; // 31/01/18
DateTime dtDob = DateTime.ParseExact(strDob , "dd/MM/yy", CultureInfo.InvariantCulture);
cmd1.Parameters.AddWithValue("@DOB", dtDob );
答案 3 :(得分:0)
您可以尝试此操作,因为它需要转换为格式
cmd.Parameters.AddWithValue("@DOB",Convert.ToDateTime(emp.DOB).ToString("yyyy-MM-dd"));
答案 4 :(得分:0)
尝试:
cmd1.Parameters.AddWithValue("@date",Convert.ToDateTime(DateTime.Now.ToLongTimeString()));
在数据库中看起来像这样:
11/12/2020 5:32:49 PM