protected void GVMinxi_RowDeleting(object sender, GridViewDeleteEventArgs e)
   {
   //执行删除
   string[,] para = { { "@ID", GVMinxi.DataKeys[e.RowIndex].Value.ToString() } };
   Socut.Data.ExecuteNonQuery("DELETE FROM 图纸 WHERE [编号] = '@ID'", para);
   this.GVMinxi.DataBind();
   }
数据已经删除了,报以下错误,我把中括号和引号取消加上都不行,高手帮忙啊“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------至少一个参数没有被指定值。  
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。源错误:  执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。   堆栈跟踪:  
[OleDbException (0x80040e10): 至少一个参数没有被指定值。]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) +1080348
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +247
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +194
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +58
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +167
   System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +113
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +394
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +697
   System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +95
   System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +1226
   System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +855
   System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +121
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +125
   System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +169
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

解决方案 »

  1.   


    string[,] para = { { "@ID", GVMinxi.DataKeys[e.RowIndex].Value.ToString() } };
    //确定GVMinxi.DataKeys[e.RowIndex].Value.ToString() 不是空字串
     Socut.Data.ExecuteNonQuery("DELETE FROM 图纸 WHERE [编号] = '@ID'", para);
    //'@ID'换个变量名 不要用这么“敏感的”可能是SQL语句的专有字符“ID”
      

  2.   

      //执行删除
      Socut.Data.ExecuteNonQuery("DELETE FROM 图纸 WHERE [编号] ={0}", GVMinxi.DataKeys[e.RowIndex].Value.ToString());
      this.GVMinxi.DataBind();只用这些放入删除方法试试!
      

  3.   

    Socut.Data.ExecuteNonQuery("DELETE FROM 图纸 WHERE [编号] = @ID", para);
    这样试试...
      

  4.   

    去掉引号试一试
    Socut.Data.ExecuteNonQuery("DELETE FROM 图纸 WHERE [编号] = @ID", para);引号应该是用于字符串常量的