切勿连接字符串以形成 SQL 查询,始终使用参数化查询。对于您的代码,您可以使用SqlParameter
, 与您的命令。无需转换DateTime
为字符串,然后将其转换回query ,只需在参数中添加对象的值DateTime
即可。这不仅可以让您免于Sql Injection,还可以解决您遇到的问题。INSERT
DateTime
就像是:
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 为您处理其余部分。