C# SqlCommand 命名约定
C# SqlCommand naming convention
我对使用 C# 和 ASP.NET 还很陌生,我很好奇当多个查询 运行 在 SQL 数据库。例如,我已经创建了我的 SqlConnection,我希望调用一个函数、两个存储过程,然后只创建一个常规的简单查询。目前,我正在使用:
SqlCommand function = new SqlCommand();
SqlCommand command = new SqlCommand();
SqlCommand proc1 = new SqlCommand();
SqlCommand proc2 = new SqlCommand();
对于这些不同的命令是否有更可接受的命名约定,或者我应该只使用一个命令,因为我在后面的代码块中使用 CommandText 和 CommandType 调用?
一个好的且更易读的约定是表达命令将做什么。
如果您阅读 updateProductCommand 或 queryCategoryCommand,每个人都会立即知道该命令的用途。
当您以存储过程为目标时,最好使用存储过程名称作为命令前缀,例如 sp_UpdateProductCommand.
如果您在同一范围内有很多命令,您可以使用 personCommand
或 productCommand
这样的名称。从 MSDN General Naming Conventions 你可以:
DO choose easily readable identifier names. For example, a property
named HorizontalAlignment is more English-readable than
AlignmentHorizontal.
DO favor readability over brevity. The property
name CanScrollHorizontally is better than ScrollableX (an obscure
reference to the X-axis).
DO NOT use underscores, hyphens, or any
other nonalphanumeric characters. X DO NOT use Hungarian notation.
AVOID using identifiers that conflict with keywords of widely used
programming languages.
查看有关 C# Coding Conventions. In other cases, I prefer using just command
to Keep It Simple 的更多信息,因为范围会告诉我。
另一个好技巧,当你使用实现了 IDisposable
接口的类型时,如 SqlCommand
、SqlConnection
,你可以使用 using() { }
结构来处理对象在这个范围之后。例如:
public IEnumerable<Person> GetPersons()
{
var result = new List<Person>();
using (var connection = new SqlConnection("connection string"))
{
// I know it is a person command, because it is in a method for it.
// Keep it simple!
using (var command = new SqlCommand("select id, name from persons", connection))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
result.Add(new Person() {
Id = (int) reader["id"];
Name = reader["name"] as string;
});
}
} // reader is disposed here
} // command is disposed here
} // connection is disposed here
return result;
}
还有很多关于编码约定的内容。请参阅参考资料中的链接。
我对使用 C# 和 ASP.NET 还很陌生,我很好奇当多个查询 运行 在 SQL 数据库。例如,我已经创建了我的 SqlConnection,我希望调用一个函数、两个存储过程,然后只创建一个常规的简单查询。目前,我正在使用:
SqlCommand function = new SqlCommand();
SqlCommand command = new SqlCommand();
SqlCommand proc1 = new SqlCommand();
SqlCommand proc2 = new SqlCommand();
对于这些不同的命令是否有更可接受的命名约定,或者我应该只使用一个命令,因为我在后面的代码块中使用 CommandText 和 CommandType 调用?
一个好的且更易读的约定是表达命令将做什么。 如果您阅读 updateProductCommand 或 queryCategoryCommand,每个人都会立即知道该命令的用途。 当您以存储过程为目标时,最好使用存储过程名称作为命令前缀,例如 sp_UpdateProductCommand.
如果您在同一范围内有很多命令,您可以使用 personCommand
或 productCommand
这样的名称。从 MSDN General Naming Conventions 你可以:
DO choose easily readable identifier names. For example, a property named HorizontalAlignment is more English-readable than AlignmentHorizontal.
DO favor readability over brevity. The property name CanScrollHorizontally is better than ScrollableX (an obscure reference to the X-axis).
DO NOT use underscores, hyphens, or any other nonalphanumeric characters. X DO NOT use Hungarian notation.
AVOID using identifiers that conflict with keywords of widely used programming languages.
查看有关 C# Coding Conventions. In other cases, I prefer using just command
to Keep It Simple 的更多信息,因为范围会告诉我。
另一个好技巧,当你使用实现了 IDisposable
接口的类型时,如 SqlCommand
、SqlConnection
,你可以使用 using() { }
结构来处理对象在这个范围之后。例如:
public IEnumerable<Person> GetPersons()
{
var result = new List<Person>();
using (var connection = new SqlConnection("connection string"))
{
// I know it is a person command, because it is in a method for it.
// Keep it simple!
using (var command = new SqlCommand("select id, name from persons", connection))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
result.Add(new Person() {
Id = (int) reader["id"];
Name = reader["name"] as string;
});
}
} // reader is disposed here
} // command is disposed here
} // connection is disposed here
return result;
}
还有很多关于编码约定的内容。请参阅参考资料中的链接。