SqlDataAdapter.InsertCommand 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个 Transact-SQL 语句或存储过程,以在数据源中插入新记录。
public:
property Microsoft::Data::SqlClient::SqlCommand ^ InsertCommand { Microsoft::Data::SqlClient::SqlCommand ^ get(); void set(Microsoft::Data::SqlClient::SqlCommand ^ value); };
public Microsoft.Data.SqlClient.SqlCommand InsertCommand { get; set; }
member this.InsertCommand : Microsoft.Data.SqlClient.SqlCommand with get, set
Public Property InsertCommand As SqlCommand
属性值
在 SqlCommand 过程中使用 Update(DataSet),以在数据库中插入对应于 DataSet 中的新行的记录。
示例
以下示例创建 并 SqlDataAdapter 设置 SelectCommand、 InsertCommand、 UpdateCommand和 DeleteCommand 属性。 它假定你已经创建了 一个 SqlConnection 对象。
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
}
public static SqlDataAdapter CreateCustomerAdapter(
SqlConnection connection)
{
SqlDataAdapter adapter = new SqlDataAdapter();
// Create the SelectCommand.
SqlCommand command = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", connection);
// Add the parameters for the SelectCommand.
command.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
command.Parameters.Add("@City", SqlDbType.NVarChar, 15);
adapter.SelectCommand = command;
// Create the InsertCommand.
command = new SqlCommand(
"INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (@CustomerID, @CompanyName)", connection);
// Add the parameters for the InsertCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
adapter.InsertCommand = command;
// Create the UpdateCommand.
command = new SqlCommand(
"UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
"WHERE CustomerID = @oldCustomerID", connection);
// Add the parameters for the UpdateCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
SqlParameter parameter = command.Parameters.Add(
"@oldCustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.UpdateCommand = command;
// Create the DeleteCommand.
command = new SqlCommand(
"DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);
// Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
"@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.DeleteCommand = command;
return adapter;
}
}
注解
在 期间 Update,如果未设置此属性,并且中存在 DataSet主键信息, InsertCommand 则可以在设置 SelectCommand 属性并使用 SqlCommandBuilder时自动生成 。 然后,未设置的任何其他命令都由 SqlCommandBuilder生成。 此生成逻辑要求键列信息存在于 中 DataSet。 有关详细信息,请参阅使用 CommandBuilders 生成命令。
当 InsertCommand 分配给以前创建的 SqlCommand时, SqlCommand 不会克隆 。 维护 InsertCommand 对以前创建的 SqlCommand 对象的引用。
如果执行此命令返回行,则可以将这些行添加到 , DataSet 具体取决于如何设置对象的 UpdatedRowSource 属性 SqlCommand 。
对于在 上 Update传播到数据源的每个列,都应将参数添加到 InsertCommand
、 UpdateCommand
或 DeleteCommand
。 参数 SourceColumn
的 属性应设置为列的名称。 这表示参数的值不是手动设置的,而是取自当前处理的行中的特定列。