2012-04-06 50 views
0

我知道实例化你这样做了新的OleDbCommand对象:混乱有关的OleDbCommand

OleDbCommand command = new OleDbCommand(queryString, connection); 

不过,我很困惑,这行代码是这样做的:

OleDbCommand cmd = aConnection.CreateCommand(); 

我知道aConnection是一个OleDbConnection对象,它在代码中已经实例化了。

从MSDN库中我知道CreateCommand()是一个与OdbcConnection关联的OdbcCommand对象。但是,图书馆并没有进一步解释其目的。

即使我知道各个组件是什么,但我不确定这里发生了什么。为了能够使用SQL命令,cmd是一个正在实例化的OleDbCommand对象吗?我在代码上进一步推断,是因为有以下几点:

cmd.CommandText = "SELECT * FROM Team where typeOfSport = '" + typeOfSport + "'"; 

回答

0

它仅仅是从连接对象创建的命令。该命令将与其创建的连接关联。

OleDbCommand command = new OleDbCommand(queryString, connection); 

相同

OleDbCommand command = connection.CreateCommand() 
+0

“与使用新语句创建命令并将连接属性设置为连接对象无关。”好。所以实质上它是一条捷径。我不知道你可以这样做。非常感谢您的帮助。 – 2012-04-06 15:48:20

2

根据MSDNaConnection.CreateCommand()

创建并返回与所述 OleDbConnection的相关联的OleDbCommand对象。

这基本上是其已经建立,而不必设置在CommandText上的命令相应的连接一个方便的方法 - 无论何时需要一个OleDbCommand对象,而无需直接但后来供给CommandText从而可以作为一个实用方法...

+0

谢谢你的帮助。 – 2012-04-06 15:49:51

+0

@ProgrammingNewbie欢迎您:-)请不要忘记将upvote/mark标记为可接受的帮助答案(参见http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -工作)。 – Yahia 2012-04-06 15:53:09

+0

完成。出于某种原因,该系统让我等待6分钟,然后它才允许我上传/标记接受的答案。如果火焰战争发展,我想这是让脾气冷静下来的。 – 2012-04-06 15:58:33