我正在尝试从表单上的文本框中将“date”类型的数据插入到数据库中。
我想确保用户输入的数据以'dd/mm/yyyy'
格式存储在数据库中。我在数据库中有一个类型'date'的列,但是当我输入上面格式的值时,我得到一个异常(例如:不能隐式地将varchar转换为类型日期)。
请问如何将输入的日期转换为'dd / mm / yyyy'格式。我尝试使用CONVERT((varchar,getdate(),103) AS [DD/MM/YYYY])
,但我无法弄清楚将它放在我的代码中的位置。我是c#和sql server的新手,请帮忙!!
答案 0 :(得分:1)
最好不要在SQL中转换日期,只是将其作为日期传回,然后在C#中你可以根据需要构建它
myDate.ToString( “日/月/年”)
答案 1 :(得分:1)
使用parameterised queries
:
DateTime dt;
dt = DateTime.ParseExact(TextBox1.Text,
"dd/MM/yyyy",CultureInfo.InvariantCulture);
SqlCOnnection con=new SqlConnection("/*connection string here*/");
string query = "INSERT INTO [TABLENAME](DateCol) VALUES(@DateValue)";
SqlCommand cmd=new SqlCommand(query,con);
cmd.Parameters.AddWithValue("@DateValue",dt);
con.Open();
cmd.ExecuteNonQuery();
您的评论编辑:
我希望日期也以相同的'dd / MM / yyyy'格式显示 在数据库中
您无法控制底层数据库在数据库中显示或管理日期的方式,但如果您想从数据库中读取dd/MM/yyyy
格式的日期,可以尝试以下方法:
SqlCOnnection con=new SqlConnection("/*connection string here*/");
string query = "SELECT [DateCol] FROM TABLENAME]";
SqlCommand cmd=new SqlCommand(query,con);
con.Open();
SqlReader reader = cmd.ExecuteReader();
while(reader.Read())
{
DateTime dt= Convert.ToDateTime(reader["DateCol"].ToString());
string mydateString = dt.ToString("dd/MM/yyyy");
}
con.Close();