切勿连接字符串以形成 SQL 查询,始终使用参数化查询。对于您的代码,您可以使用SqlParameter, 与您的命令。无需转换DateTime为字符串,然后将其转换回query ,只需在参数中添加对象的值DateTime即可。这不仅可以让您免于Sql Injection,还可以解决您遇到的问题。INSERTDateTime
就像是:
using(SqlConnection conn = new SqlConnection("Connectionstring"))
using (SqlCommand cmd = new SqlCommand())
{
string sql = "insert into Usertable ";
sql += "values(@mVendid, @usrname, @usrpass, @datecreation, @createdby)";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@mVendid", mVendid);
cmd.Parameters.AddWithValue("@usrname", username);
cmd.Parameters.AddWithValue("@usrpass", userpass);
cmd.Parameters.AddWithValue("@datecreation", Convert.ToDateTime(datecreation));
cmd.Parameters.AddWithValue("@createdby", createdby);
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
}
如果datecreation来自DateTime对象,则直接添加,否则您可以将其解析为DateTime对象并让 SQL Server 为您处理其余部分。