SqlDataSource.Insert Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Executa uma operação de inserção usando a cadeia de caracteres SQL InsertCommand e os parâmetros que estão na coleção InsertParameters.
public:
int Insert();
public int Insert ();
member this.Insert : unit -> int
Public Function Insert () As Integer
Retornos
Um valor que representa o número de linhas inseridas no banco de dados subjacente.
Exceções
O SqlDataSource não pode estabelecer uma conexão com a fonte de dados subjacente.
Exemplos
O exemplo de código a seguir demonstra como inserir dados em um banco de dados usando o SqlDataSource controle e uma página simples do Web Forms. Os dados atuais na tabela Dados são exibidos no DropDownList controle . Você pode adicionar novos registros inserindo valores nos TextBox controles e clicando no botão Inserir . Quando o botão Inserir é clicado, os valores especificados são inseridos no banco de dados e, em seguida, o DropDownList é atualizado.
Importante
Este exemplo inclui uma caixa de texto que aceita a entrada do usuário, que é uma possível ameaça à segurança e os valores são inseridos em parâmetros sem validação, o que também é uma possível ameaça à segurança. Use o Inserting evento para validar valores de parâmetro antes de executar a consulta. Para obter mais informações, consulte Visão geral de explorações de script.
Observação
Este exemplo mostra como usar a sintaxe declarativa para acesso a dados. Para obter informações sobre como acessar dados usando código em vez de marcação, consulte Acessando dados no Visual Studio.
<%@Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void InsertShipper (object source, EventArgs e) {
SqlDataSource1.Insert();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:dropdownlist
id="DropDownList1"
runat="server"
datasourceid="SqlDataSource1"
datatextfield="CompanyName"
datavaluefield="ShipperID" />
<!-- Security Note: The SqlDataSource uses a FormParameter,
Security Note: which does not perform validation of input from the client.
Security Note: To validate the value of the FormParameter, handle the Inserting event. -->
<asp:sqldatasource
id="SqlDataSource1"
runat="server"
connectionstring="<%$ ConnectionStrings:MyNorthwind %>"
selectcommand="SELECT CompanyName,ShipperID FROM Shippers"
insertcommand="INSERT INTO Shippers (CompanyName,Phone) VALUES (@CoName,@Phone)">
<insertparameters>
<asp:formparameter name="CoName" formfield="CompanyNameBox" />
<asp:formparameter name="Phone" formfield="PhoneBox" />
</insertparameters>
</asp:sqldatasource>
<br /><asp:textbox
id="CompanyNameBox"
runat="server" />
<asp:RequiredFieldValidator
id="RequiredFieldValidator1"
runat="server"
ControlToValidate="CompanyNameBox"
Display="Static"
ErrorMessage="Please enter a company name." />
<br /><asp:textbox
id="PhoneBox"
runat="server" />
<asp:RequiredFieldValidator
id="RequiredFieldValidator2"
runat="server"
ControlToValidate="PhoneBox"
Display="Static"
ErrorMessage="Please enter a phone number." />
<br /><asp:button
id="Button1"
runat="server"
text="Insert New Shipper"
onclick="InsertShipper" />
</form>
</body>
</html>
<%@Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub InsertShipper (ByVal Source As Object, ByVal e As EventArgs)
SqlDataSource1.Insert()
End Sub ' InsertShipper
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:dropdownlist
id="DropDownList1"
runat="server"
datasourceid="SqlDataSource1"
datatextfield="CompanyName"
datavaluefield="ShipperID" />
<!-- Security Note: The SqlDataSource uses a FormParameter,
Security Note: which does not perform validation of input from the client.
Security Note: To validate the value of the FormParameter, handle the Inserting event. -->
<asp:sqldatasource
id="SqlDataSource1"
runat="server"
connectionstring="<%$ ConnectionStrings:MyNorthwind %>"
selectcommand="SELECT CompanyName,ShipperID FROM Shippers"
insertcommand="INSERT INTO Shippers (CompanyName,Phone) VALUES (@CoName,@Phone)">
<insertparameters>
<asp:formparameter name="CoName" formfield="CompanyNameBox" />
<asp:formparameter name="Phone" formfield="PhoneBox" />
</insertparameters>
</asp:sqldatasource>
<br /><asp:textbox
id="CompanyNameBox"
runat="server" />
<asp:RequiredFieldValidator
id="RequiredFieldValidator1"
runat="server"
ControlToValidate="CompanyNameBox"
Display="Static"
ErrorMessage="Please enter a company name." />
<br /><asp:textbox
id="PhoneBox"
runat="server" />
<asp:RequiredFieldValidator
id="RequiredFieldValidator2"
runat="server"
ControlToValidate="PhoneBox"
Display="Static"
ErrorMessage="Please enter a phone number." />
<br /><asp:button
id="Button1"
runat="server"
text="Insert New Shipper"
onclick="InsertShipper" />
</form>
</body>
</html>
Comentários
Antes que a operação de inserção seja executada, o OnInserting método é chamado para gerar o Inserting evento. Você pode manipular esse evento para examinar os valores dos parâmetros e executar qualquer pré-processamento antes da Insert operação. Para executar uma operação de inserção, o SqlDataSourceView objeto cria um DbCommand objeto usando o InsertCommand texto e quaisquer propriedades associadas InsertParameters e, em seguida, executa o DbCommand objeto no banco de dados subjacente.
Após a conclusão da operação, o OnInserted método é chamado para gerar o Inserted evento. Você pode manipular esse evento para examinar quaisquer valores retornados e códigos de erro e para executar qualquer pós-processamento.
O Insert método é fornecido para acesso programático ao Insert
método . Se o SqlDataSource controle estiver associado a um controle associado a dados, o controle associado a dados chamará automaticamente o Insert
método .
O Insert método delega ao Insert método do SqlDataSourceView objeto associado ao SqlDataSource controle .
Importante
Os valores são inseridos em parâmetros sem validação, o que é uma possível ameaça à segurança. Use o Filtering evento para validar valores de parâmetro antes de executar a consulta. Para obter mais informações, consulte Visão geral de explorações de script.