C# dateTime应该使用哪个字符(例如,对于int,我们使用%d)
当我们想要像C# dateTime应该使用哪个字符(例如,对于int,我们使用%d),c#,C#,当我们想要像int那样将某事物传递给数据库时,我们使用如下所示的(%d) …string.format(“从代码=%d的表中选择*”,100). 当我们想要传递日期时间时,我应该使用什么来代替%d?不要使用string.format()替换db参数,您最终将进入SQL注入。SqlCommand具有Parameters属性,您可以将参数添加到集合中 使用如下参数化查询: SqlCommand cmd = new SqlCommand() cmd.Parameters.AddWithValue("@
int
那样将某事物传递给数据库时,我们使用如下所示的(%d)
…string.format(“从代码=%d的表中选择*”,100).
当我们想要传递日期时间时,我应该使用什么来代替%d
?不要使用string.format()替换db参数,您最终将进入SQL注入。SqlCommand具有Parameters属性,您可以将参数添加到集合中
使用如下参数化查询:
SqlCommand cmd = new SqlCommand()
cmd.Parameters.AddWithValue("@yourParam",value);
using(var connection = new SqlConnection("your connectionstring goes here"))
{
using(var command = new SqlCommand("select* from Table where code=@dateTime",
connection))
{
command.Parameters.AddWithValue("@dateTime", DateTime.Now);
var reader = command.ExecuteReader();
}
}
如果在代码中使用Using块,效率会更高
像这样
using(SqlConnection con = new SqlConnection("ConnString"))
using(SqlCommand cmd = new SqlCommand(con))
{
// do some stuffs. like add parameters.
}
除了@Ravi的答案
您应该避免像那样连接SQL查询,因为这将允许
在您的情况下,我会考虑使用ORM(,),但是如果您只想使用<代码> Sql命令< /C> >,您的查询看起来会有点类似:
SqlCommand cmd = new SqlCommand()
cmd.Parameters.AddWithValue("@yourParam",value);
using(var connection = new SqlConnection("your connectionstring goes here"))
{
using(var command = new SqlCommand("select* from Table where code=@dateTime",
connection))
{
command.Parameters.AddWithValue("@dateTime", DateTime.Now);
var reader = command.ExecuteReader();
}
}
以下是来自wikipedia的一个示例,它显示了连接sql语句的问题:
statement=“从用户名=”+userName+“;”的用户中选择*”
如果用户名
只包含一个”
,会发生什么情况
最后的SQL语句将如下所示:
SqlCommand cmd = new SqlCommand()
cmd.Parameters.AddWithValue("@yourParam",value);
using(var connection = new SqlConnection("your connectionstring goes here"))
{
using(var command = new SqlCommand("select* from Table where code=@dateTime",
connection))
{
command.Parameters.AddWithValue("@dateTime", DateTime.Now);
var reader = command.ExecuteReader();
}
}
从name=''的用户中选择*
这是不正确的,将抛出一个错误。通过公开这一点,您可以对您的数据做非常有害的事情 在.NET中,您在哪里可以找到string.format
?特别是C格式字符串?可能与