0

一切正常,但这只是为了知道正确的做法/正确的方法/什么是有意义的

说我有代码:

string query = "SELECT * FROM table WHERE parent_id=@parentId and id = @id";
OleDbCommand c = new OleDbCommand(query, _con);

对于其余部分,以下哪项是正确的?:

c.Parameters.AddWithValue("@parentId", 1);
c.Parameters.AddWithValue("@id", 2);

或者

c.Parameters.AddWithValue("parentId", 1);
c.Parameters.AddWithValue("id", 2);

或者

c.Parameters.AddWithValue(@"parentId", 1);
c.Parameters.AddWithValue(@"id", 2);

(我知道它不是第三个)第二个在我看来是正确的。这一切都取决于 SQL 如何从代码中实际解释参数化参数。有什么想法吗?我特别问,因为我不喜欢一个知识渊博的人嘲笑我在编码方面的不良习惯,如果这里有的话:)

更新:据我所知,即使 msdn 也没有遵循这里的约定,第一个和第二个都被使用。我将坚持第一个明确的。谢谢

4

1 回答 1

5

一切都会奏效。只要参数具有合理的名称,第二个和第三个是相同的(@此处仅影响 c# 编译器行为),但可以说第二个/第三个是可取的,因为它们适用于任何连接- 包括那些@不是参数符号的连接。但是,由于@也在查询中,这可以说是一个微弱的区别。

于 2012-05-06T20:51:43.427 回答