Commands发出针对数据库的数据存储动作。例如,你可以执行一条命令插入或者删除数据。获取更多从数据库移动数据相关的信息,请参考“Update a Database from a DataSet”。Commands包含了对数据库发出的若干命令,而且在OleDbCommand情况下, 可以进行特定的数据存储. 例如,你可以执行存储过程调用的命令,又或许是一个“set quoted_identifier on”的命令。无论是何种命令,OleDbCommand还是SqlCommand可以被用于获取命令完成你的后端数据存储。
使用传统的ADO,你可以通过Command对象,Connection对象,或者Recordset对象发出命令。在ADO.NET里面,只有Command对象才能执行命令。
对数据库发出一个命令,Command对象必须满足两点:Connection和CommandText,两者都可以在构造器中设置。执行命令,连接必须是打开的而不是fetching state:
String InsertCmdString; InsertCmdString = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"; SqlCommand mySqlCommand = new SqlCommand(InsertCmdString, myConnection);
这个主题涵盖了执行非结果集生成命令。执行不返回结果的命令,调用ExecuteNonQuery方法。
mySqlCommand.ExecuteNonQuery();
OleDbCommand和SqlCommand对象拥有的参数集合就像来自传统的ADO参数集合一样。你可以内联的传递参数:
mySqlCommand.CommandText = "myStoredProc 'CustId'";
或者使用参数集合:
workParam = mySqlCommand.Parameters.Add("@CustomerID", SQLDataType.NChar, 5); workParam.Value = "NewID";
获取更多关于使用参数集合的相关信息,请参考Getting Out Parameters from a Stored Procedure。
下面的示例演示了对于SQL数据库使用SqlCommand如何执行一条插入命令。
原文地址: