大家好哈。近期新学ASP.NET。以前是搞VB的,所有搞ASP.NET 也用的是VB,开发环境是 VS2008   这几天遇到一个很头疼的问题,就是 在 GridView 最后一列添加了一个删除按钮,但是一点就错误了。很郁闷,在书上找不到怎么写 SqlDataSource 里面的 deleteQuery 属性。
   
    SqlDataSource 的 deletecommandTYPE 属性应该设置成 StoredProcedure,对吧?

    我在 deleteQuery  里面是这样子写的:
     DELETE FROM 客户信息表 WHERE (会员编号 LIKE @会员编号)     另外有一个参数 :         名称:会员编号    参数源:不知道选哪个   值:不知道填什么+++++++++++++++++++++++++++++++++++++++++++++++++
错误提示 :
找不到存储过程 'DELETE FROM 客户信息表 WHERE (会员编号 LIKE @会员编号)'。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 找不到存储过程 'DELETE FROM 客户信息表 WHERE (会员编号 LIKE @会员编号)'。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[SqlException (0x80131904): 找不到存储过程 'DELETE FROM 客户信息表 WHERE (会员编号 LIKE @会员编号)'。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1951450
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4849003
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2394
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +204
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +175
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +386
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteDelete(IDictionary keys, IDictionary oldValues) +303
   System.Web.UI.DataSourceView.Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) +89
   System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +714
   System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +869
   System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +207
   System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565      

解决方案 »

  1.   

    http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
    或者在google里面搜索 gridview 72绝技
      

  2.   

    如果sql不是存储过程的话怎么可以是StoredProcedure呢,应该是text,还有,sql里面的会员编号是什么类型,like 对varchar类型的要加单引号
      

  3.   


    谢谢大家这么热情,是的,会员编号 是 varchar(50)数据类型上涨图吧,这里面怎么设置,郁闷……
      

  4.   

    进入SqlDataSource配置界面,
    应该点
    1."指定自定义SQL语句或存储过程"
    2.进入下一界面后点上部的"Sql语句"
    有四个标签,对应,查询,更新,插入,删除,分别设置即可!!
      

  5.   

    DELETE  FROM [客户信息表] WHERE ([会员编号] like '%'+@会员编号+'%')
      

  6.   

    你那个语句根 本就不是存储过程,怎么能用StoredProcedure,再选择的时候直接输入你那刚刚那句SQL语句   
      

  7.   

    你那个语句根 本就不是存储过程,怎么能用StoredProcedure,再选择的时候直接输入你那刚刚那句SQL语句