<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:zxiaoaiConnectionString %>"
SelectCommand="SELECT * FROM [column]" DeleteCommand="DELETE FROM [column] WHERE (colid = @colid)" UpdateCommand="UPDATE [column] SET name1 = @name1, url = @url WHERE (colid = @colid)"
>
<DeleteParameters>
<asp:Parameter Name="colid" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="name1" />
<asp:Parameter Name="url" />
<asp:Parameter Name="colid" />
</UpdateParameters>
</asp:SqlDataSource>
<br />
<table>
<tr>
<td colspan="3" rowspan="3" style="width: 1511px; height: 256px">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="629px" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="colid" HeaderText="colid" InsertVisible="False" SortExpression="colid" />
<asp:BoundField DataField="type" HeaderText="type" SortExpression="type" />
<asp:BoundField DataField="name1" HeaderText="name1" SortExpression="name1" />
<asp:BoundField DataField="url" HeaderText="url" SortExpression="url" />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>执行修改没问题,删除时却提示System.Data.SqlClient.SqlException: 必须声明标量变量 "@colid"。
SelectCommand="SELECT * FROM [column]" DeleteCommand="DELETE FROM [column] WHERE (colid = @colid)" UpdateCommand="UPDATE [column] SET name1 = @name1, url = @url WHERE (colid = @colid)"
>
<DeleteParameters>
<asp:Parameter Name="colid" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="name1" />
<asp:Parameter Name="url" />
<asp:Parameter Name="colid" />
</UpdateParameters>
</asp:SqlDataSource>
<br />
<table>
<tr>
<td colspan="3" rowspan="3" style="width: 1511px; height: 256px">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="629px" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="colid" HeaderText="colid" InsertVisible="False" SortExpression="colid" />
<asp:BoundField DataField="type" HeaderText="type" SortExpression="type" />
<asp:BoundField DataField="name1" HeaderText="name1" SortExpression="name1" />
<asp:BoundField DataField="url" HeaderText="url" SortExpression="url" />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>执行修改没问题,删除时却提示System.Data.SqlClient.SqlException: 必须声明标量变量 "@colid"。
解决方案 »
- 验证控件的问题
- 简单的div+css问题为什么在IE中和火狐中有不同的效果,谢谢解答!
- 一个关于CSS的问题,求解!!!
- 数据库方面的一个好问题!!来拿分啊
- 关于ASP.NET中的request,Request.Form("id").count出错
- 请教高手学习asp.net的好的方法
- 如何查找正则表达式中的内容并放到一个string型变量中
- HttpContext.Current.Item和HttpContext.Current.Cache的区别?
- 关于域名查询(查该域名是否已经被申请)...
- 高手帮解决一下:如何解新决报表注册错误的问题(在线等待)
- 如何在App_Code写一个类用到request????????
- 请问如何对GridView的结果集再加工呀?
提示很明显是说你@colid没有赋值.一般我用的是代码来做删除的
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
SqlConnection cn = new SqlConnection(@"server=.\sqlexpress;uid=sa;pwd=;database=pubs");
SqlCommand cmd = new SqlCommand("delete from authors where au_id=@au_id", cn);
cmd.Parameters.Add("@au_id",SqlDbType.VarChar).Value=GridView1.DataKeys[e.RowIndex].Value.ToString();
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
GridView1.EditIndex = -1;
BindGrid();
}
将
<DeleteParameters>
<asp:Parameter Name="colid" />
</DeleteParameters>
修改为:<DeleteParameters>
<asp:ControlParameter ControlID="GridView1" Name="colid" PropertyName="SelectedValue"/>
</DeleteParameters> 再将添加个
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="629px" DataSourceID="SqlDataSource1" DataKeyNames="colid"》
谢谢1楼的回答