我刚从Visual Studio 2005收到此消息,当我点击我使用界面配置网格时添加到gridview的删除命令时:
数据不支持删除 source'transactionSqlDataSource' 除非指定了DeleteCommand。
我该如何激活它?我希望我的用户在单击“删除”按钮时能够删除一行。
我已经将我的SQLDataSource的属性DeleteCommandType更改为StoredProcedure。 我还需要做什么?
更新
这就是我所做的,但我遗漏了一些东西,我无法编译:
这就是我在.cs做的事情:
public string DeleteCommand { get; set; }
我如何解决这个问题,它说得到的是身体缺失。我不习惯使用ASP.NET。你能帮我解决这部分代码吗?
这就是我在.aspx所做的:
<asp:SqlDataSource ID="transactionsSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:membershipsDBConnectionString %>"
SelectCommand="SELECT [brukerId], [kjoptekvoten], [pengeneutbetalt], [fyringsolje], [biltype], [kjoptid] FROM [Informasjon]" DeleteCommandType="StoredProcedure"
DeleteCommand="DELETE FROM [Informasjon] WHERE fyringsolje='Kull: 2,42 kg';">
</asp:SqlDataSource>
数据源的配置是否正确?如果你发现delete命令没有使用上面的参数,请不要担心,它只是用于作业(我只需要通过查询)。
更新2 我一直在努力,但我无法解决它。我是ASP.NET的新手,我对所有术语都不是很熟悉。到底发生了什么?我怎么知道我的商店程序的名称?:
CS:
public string DeleteCommand { get { return DeleteCommand; } set { DeleteCommand = "";}
Aspx:
<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:membershipsDBConnectionString %>"
DeleteCommandType="StoredProcedure" SelectCommand="SELECT [id], [kjoptekvoten], [pengeneutbetalt], [fyringsolje], [biltype], [kjoptid] FROM [Informasjon]"
DeleteCommand="StoredProcedureName">
</asp:SqlDataSource>
当我点击“删除”时,该行需要从表格 Informasjon 中删除
答案 0 :(得分:5)
DeleteCommand="<your stored proc>"
您的SqlDataSource中需要以及您想要的任何参数,例如:
<DeleteParameters>
<asp:Parameter Name="myParameter" Type="Int32" />
</DeleteParameters>
需要在SqlDatasource标记中添加。
答案 1 :(得分:2)
如果您创建了一个存储过程,则可以调用存储过程:
<asp:SqlDataSource ID="SqlDataSource5" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
// in the select command or your case delete you just input the name instead of a query
SelectCommand="SELECT * FROM [Table] WHERE [Column1]=@Parameter1 AND [Column2]=@Parameter2 AND [Column3]=@Parameter3;"
DeleteCommand="StoredProcedureName"
// Then ofcourse put the commandtype on storedprocedure but you already have that
DeleteCommandType="StoredProcedure">
// And you can declare the parameters like below
<SelectParameters>
<asp:Parameter Name="Parameter1" Type="String" />
<asp:Parameter Name="Parameter2" Type="Boolean" />
<asp:Parameter Name="Parameter3" Type="String" />
<asp:Parameter Name="Parameter4" Type="Boolean" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="Parameter1" Type="String" />
</DeleteParameters>
</asp:SqlDataSource>
有关存储过程的详细信息,请参阅:What is a stored procedure? 或者您可以直接调用查询,如下例所示:
<asp:SqlDataSource ID="SqlDataSource5" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [informasjon];"
DeleteCommand="DELETE FROM [informasjon] WHERE [id]=@id;">
<DeleteParameters>
<asp:Parameter Name="id" Type="Int" />
</DeleteParameters>
</asp:SqlDataSource>
您必须为自己提供连接字符串。有关连接字符串的更多信息,请阅读:https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx