aba*_*hev 4 .net c# sql performance ado.net
哪种方式更受欢迎?
SqlCommand = new SqlCommand(query);
command.Parameters.Add("@Foo");
command.Parameters[0].Value = Foo;
command.Parameters.Add("@Bar");
command.Parameters[1].Value = Bar;
// or
command.Parameters.Add("@Foo");
command.Parameters.Add("@Bar");
command.Parameters["@Foo"].Value = Foo;
command.Parameters["@Bar"].Value = Bar;
Run Code Online (Sandbox Code Playgroud)
Chr*_*fer 13
另外两个选择:
command.Parameters.AddWithValue("@Foo", Foo);
command.Parameters.Add("@Foo").Value = Foo;
Run Code Online (Sandbox Code Playgroud)
另外,我认为它们之间的速度差异不足以让你根据它选择; 选择对您和您的团队最具可读性的那个.
严格来说,使用int重载更快.原因是底层集合存储为数组并使用整数偏移量.当你调用字符串重载时,它会将参数转换为int,然后基本上调用int重载.
真正的问题是"它是否重要"?除非你有可能有数千个参数,否则这不太可能.即便如此,在分析器说它之前,你无法确认这是一个问题.