readonly="true" 把这句删掉看行不行

解决方案 »

  1.   

    readonly="true" 删掉还是一样的现象
      

  2.   

    从错误上看应该是你的数据源中没有ImageID这个名字的Field,仔细检查一下你的数据表和RoomDataSet.xsd,看看ImageID是否和页面GridView中绑定的ImageID一致
      

  3.   

    在后台代码中加上这个试试.protected void SqlDataSource1_Deleting(object sender, SqlDataSourceCommandEventArgs e)
    {
       if (e.Command.Parameters.Contains("@ImageID"))
            {
                SqlParameter sparam = e.Command.Parameters["@ImageID"] as SqlParameter;
                sparam.SqlDbType = SqlDbType.UniqueIdentifier;
            } 
    }
      

  4.   


    数据库中表里面的确有这个字段,roomdataset.xsd,都是直接把表拖上去建立,这些字段都有.
      

  5.   


    我用的是ObjectDataSource 
    添加了protected void ObjectDataSource1_Deleting ( object sender,ObjectDataSourceMethodEventArgs e )
    但是还没执行到这一步就报错了.
      

  6.   

    补充点信息,用的是VS2008+SQLSERVER2005
      

  7.   

    看来看去,还是觉得是ImageID这个字段的问题!你给出删除按钮的后台代码看看!
      

  8.   

    删除按钮没后台代码.
    整个页面就是拖拽控件生成的.没有手工写后台代码.
    delete就是gridview自带的删除功能
      

  9.   

    ImageID在数据库中的类型是uniqueidentifier,为主键
      

  10.   

    把xsd中生产的sql贴出来看看估计可能是这里有点问题一般情况下 直接拖拽生成的代码都没有错
      

  11.   


                    <DeleteCommand>
                      <DbCommand CommandType="Text" ModifiedByUser="false">
                        <CommandText>DELETE FROM [dbo].[Image] WHERE (([ImageID] = @Original_ImageID))</CommandText>
                        <Parameters>
                          <Parameter AllowDbNull="false" AutogeneratedName="" DataSourceName="" DbType="Guid" Direction="Input" ParameterName="@Original_ImageID" Precision="0" ProviderType="UniqueIdentifier" Scale="0" Size="0" SourceColumn="ImageID" SourceColumnNullMapping="false" SourceVersion="Original" />
                        </Parameters>
                      </DbCommand>
                    </DeleteCommand>