c# - Deleting Images in a GridView Control -
i'm designing gridview control allow editing , deleting of rows contain images. whenever try use auto-generated delete method following error: "operand type clash: varbinary(max) incompatible sql_variant"
here's code:
<div id="content"> <asp:sqldatasource id="sqldatasource1" runat="server" conflictdetection="compareallvalues" connectionstring="<%$ connectionstrings:inventoryconnectionstring %>" deletecommand="delete [inventory] [id] = @original_id , [stocknum] = @original_stocknum , [make] = @original_make , [model] = @original_model , [year] = @original_year , (([miles] = @original_miles) or ([miles] null , @original_miles null)) , (([engine] = @original_engine) or ([engine] null , @original_engine null)) , (([drive] = @original_drive) or ([drive] null , @original_drive null)) , (([color] = @original_color) or ([color] null , @original_color null)) , (([description] = @original_description) or ([description] null , @original_description null)) , (([image1] = @original_image1) or ([image1] null , @original_image1 null)) , (([image2] = @original_image2) or ([image2] null , @original_image2 null)) , (([image3] = @original_image3) or ([image3] null , @original_image3 null)) , (([image4] = @original_image4) or ([image4] null , @original_image4 null)) , (([image5] = @original_image5) or ([image5] null , @original_image5 null)) , (([added] = @original_added) or ([added] null , @original_added null))" insertcommand="insert [inventory] ([stocknum], [make], [model], [year], [miles], [engine], [drive], [color], [description], [image1], [image2], [image3], [image4], [image5], [added]) values (@stocknum, @make, @model, @year, @miles, @engine, @drive, @color, @description, @image1, @image2, @image3, @image4, @image5, @added)" oldvaluesparameterformatstring="original_{0}" selectcommand="select * [inventory]" updatecommand="update [inventory] set [stocknum] = @stocknum, [make] = @make, [model] = @model, [year] = @year, [miles] = @miles, [engine] = @engine, [drive] = @drive, [color] = @color, [description] = @description, [image1] = @image1, [image2] = @image2, [image3] = @image3, [image4] = @image4, [image5] = @image5, [added] = @added [id] = @original_id , [stocknum] = @original_stocknum , [make] = @original_make , [model] = @original_model , [year] = @original_year , (([miles] = @original_miles) or ([miles] null , @original_miles null)) , (([engine] = @original_engine) or ([engine] null , @original_engine null)) , (([drive] = @original_drive) or ([drive] null , @original_drive null)) , (([color] = @original_color) or ([color] null , @original_color null)) , (([description] = @original_description) or ([description] null , @original_description null)) , (([image1] = @original_image1) or ([image1] null , @original_image1 null)) , (([image2] = @original_image2) or ([image2] null , @original_image2 null)) , (([image3] = @original_image3) or ([image3] null , @original_image3 null)) , (([image4] = @original_image4) or ([image4] null , @original_image4 null)) , (([image5] = @original_image5) or ([image5] null , @original_image5 null)) , (([added] = @original_added) or ([added] null , @original_added null))"> <deleteparameters> <asp:parameter name="original_id" type="int32" /> <asp:parameter name="original_stocknum" type="string" /> <asp:parameter name="original_make" type="string" /> <asp:parameter name="original_model" type="string" /> <asp:parameter name="original_year" type="int32" /> <asp:parameter name="original_miles" type="int32" /> <asp:parameter name="original_engine" type="string" /> <asp:parameter name="original_drive" type="string" /> <asp:parameter name="original_color" type="string" /> <asp:parameter name="original_description" type="string" /> <asp:parameter name="original_image1" type="object" /> <asp:parameter name="original_image2" type="object" /> <asp:parameter name="original_image3" type="object" /> <asp:parameter name="original_image4" type="object" /> <asp:parameter name="original_image5" type="object" /> <asp:parameter dbtype="date" name="original_added" /> </deleteparameters> <insertparameters> <asp:parameter name="stocknum" type="string" /> <asp:parameter name="make" type="string" /> <asp:parameter name="model" type="string" /> <asp:parameter name="year" type="int32" /> <asp:parameter name="miles" type="int32" /> <asp:parameter name="engine" type="string" /> <asp:parameter name="drive" type="string" /> <asp:parameter name="color" type="string" /> <asp:parameter name="description" type="string" /> <asp:parameter name="image1" type="object" /> <asp:parameter name="image2" type="object" /> <asp:parameter name="image3" type="object" /> <asp:parameter name="image4" type="object" /> <asp:parameter name="image5" type="object" /> <asp:parameter dbtype="date" name="added" /> </insertparameters> <updateparameters> <asp:parameter name="stocknum" type="string" /> <asp:parameter name="make" type="string" /> <asp:parameter name="model" type="string" /> <asp:parameter name="year" type="int32" /> <asp:parameter name="miles" type="int32" /> <asp:parameter name="engine" type="string" /> <asp:parameter name="drive" type="string" /> <asp:parameter name="color" type="string" /> <asp:parameter name="description" type="string" /> <asp:parameter name="image1" type="object" /> <asp:parameter name="image2" type="object" /> <asp:parameter name="image3" type="object" /> <asp:parameter name="image4" type="object" /> <asp:parameter name="image5" type="object" /> <asp:parameter name="added" dbtype="date"></asp:parameter> <asp:parameter name="original_id" type="int32" /> <asp:parameter name="original_stocknum" type="string" /> <asp:parameter name="original_make" type="string" /> <asp:parameter name="original_model" type="string" /> <asp:parameter name="original_year" type="int32" /> <asp:parameter name="original_miles" type="int32" /> <asp:parameter name="original_engine" type="string" /> <asp:parameter name="original_drive" type="string" /> <asp:parameter name="original_color" type="string" /> <asp:parameter name="original_description" type="string" /> <asp:parameter name="original_image1" type="object" /> <asp:parameter name="original_image2" type="object" /> <asp:parameter name="original_image3" type="object" /> <asp:parameter name="original_image4" type="object" /> <asp:parameter name="original_image5" type="object" /> <asp:parameter dbtype="date" name="original_added" /> </updateparameters> </asp:sqldatasource> <asp:gridview id="gridview1" runat="server" allowpaging="true" allowsorting="true" autogeneratecolumns="false" datakeynames="id" datasourceid="sqldatasource1" cssclass="gridviewstyle"> <columns> <asp:commandfield showdeletebutton="true" showselectbutton="true" headertext="options" /> <asp:boundfield datafield="stocknum" headertext="stock #" sortexpression="stocknum" /> <asp:boundfield datafield="make" headertext="make" sortexpression="make" /> <asp:boundfield datafield="model" headertext="model" sortexpression="model" /> <asp:boundfield datafield="year" headertext="year" sortexpression="year" /> <asp:boundfield datafield="miles" headertext="miles" sortexpression="miles" /> <asp:boundfield datafield="engine" headertext="engine" sortexpression="engine" /> <asp:boundfield datafield="drive" headertext="drive" sortexpression="drive" /> <asp:boundfield datafield="color" headertext="color" sortexpression="color" /> <asp:boundfield datafield="description" headertext="description" sortexpression="description" /> <asp:imagefield dataimageurlfield="id" dataimageurlformatstring="imagehandler.aspx?imageid={0}" controlstyle-width="200" controlstyle-height="120" headertext="preview image"> <controlstyle height="120px" width="200px"></controlstyle> </asp:imagefield> </columns> <rowstyle cssclass="rowstyle" /> <emptydatarowstyle cssclass="emptyrowstyle" /> <pagerstyle cssclass="pagerstyle" /> <selectedrowstyle cssclass="selectedrowstyle" /> <headerstyle cssclass="headerstyle" /> <editrowstyle cssclass="editrowstyle" /> <alternatingrowstyle cssclass="altrowstyle" /> </asp:gridview> </div> code-behind:
using system; using system.configuration; using system.data; using system.data.sql; using system.data.sqlclient; using system.web; using system.web.security; using system.web.ui; using system.web.ui.htmlcontrols; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; public partial class account_editinventory : system.web.ui.page { protected void page_load(object sender, eventargs e) { datatable dt = new datatable(); string strconnstring = system.configuration.configurationmanager. connectionstrings["inventoryconnectionstring"].connectionstring; string strquery = "select id, image1 inventory"; sqlcommand cmd = new sqlcommand(strquery); sqlconnection con = new sqlconnection(strconnstring); sqldataadapter sda = new sqldataadapter(); cmd.commandtype = commandtype.text; cmd.connection = con; try { con.open(); sda.selectcommand = cmd; sda.fill(dt); gridview1.databind(); } catch (exception ex) { response.write(ex.message); } { con.close(); sda.dispose(); con.dispose(); dt.dispose(); } } }
you need not try pass image in parameter in delete query , rewrite pass key them image.
Comments
Post a Comment