Question

RowEditing Event Code

Asked by: sny23vpb

Hello:

I'm trying to create a dynamic data command and data-adapter to populate a grid similar to the code below with autogenerateeditbutton='true'.

I know I need to populate the  GridView1_RowEditing  event but am unsure how to do that.
Several tries have been unsuccessful.

I'm trying to keep everything dynamic and do not know if I need to put my updatecommand in that event to make it workl ?

The table in the sql below could be choosen as a different table so in keeping everything dynamic I believe I'm going to have to populate the updatecommand in the rowediting event as something like  update testtable set field1=@field1 where ...... and I'm not sure how to write that update process so it updates the row they are on when they click edit.

Its running in asp.net

Thank you for any help.

-----------
Dim SQL_String As String = "select * from testtable"
Dim connection As Data.SqlClient.SqlConnection
connection = New Data.SqlClient.SqlConnection("server=USFTW007FLN3G1\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=test")
        connection.Open()
        Dim cmd As New Data.SqlClient.SqlCommand
        Dim ds As New Data.DataSet
        Dim dataadapter As Data.SqlClient.SqlDataAdapter
        cmd.Connection = connection
        cmd.CommandText = SQL_String
        cmd.CommandType = Data.CommandType.Text
        Try
            dataadapter = New Data.SqlClient.SqlDataAdapter(cmd)
            dataadapter.Fill(ds)
            cmd.Parameters.Clear()
        Finally
        End Try
        connection.Close()
        GridView1.DataSource = ds
        GridView1.DataBind()
-------------------------

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2008-06-14 at 21:08:05ID23485785
Topics

Visual Studio

,

.NET Framework 2.x

Participating Experts
1
Points
350
Comments
5

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. DataAdapter
    I am getting an error: System.ArgumentNullException: Value cannot be null. Parameter name: dataTable. I cant see what could be wrong. Any clues? when ndeploying the following code as an ASP.NET application. //declarations protected System.Data.OleDb.OleDbConnection conn; ...
  2. Processing multiple textr files usiing dataadapter
    Hi, I have a program that performs the following loop Select semi-colon separated text files For each text file create connection string (using jet text reader) create dataadapter (da) create dataset (ds) create select statement (Select * from F...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: JZoermanPosted on 2008-06-17 at 07:34:37ID: 21803417

When using custom editing, updating, etc. with the GridView control corresponding subs must exsist regardless of where your logic is performed.

 Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
        Select Case e.CommandName
            Case "Edit"
                'May perform some logic here
                'Note: event RowEditing will fire subsequently
            Case "Update"
                'May perform some logic here
                'Note: event RowUpdating will fire subsequently
        End Select
    End Sub
 
  Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
        'May perform logic here. However, even if no logic performed here this sub must exsist
        'even if empty when using custom Editing in GridView1
        'Note: e.NewEditIndex is the row index that fired this event
    End Sub
 
    Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating
        'May perform logic here. However, even if no logic performed here this sub must exsist
        'even if empty when using custom Updating in GridView1
        'Note: e.RowIndex is the row index that fired this event
    End Sub
                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:

Select allOpen in new window

 

by: sny23vpbPosted on 2008-06-17 at 10:53:49ID: 21805681

ok. Thanks.
So; if I have to use custom editing because I want my grid to be based on the table selected in a drop-down;  what is the basic syntax for me to express the update of the field with the value from the grid which I am guessing is identified by e.RowIndex.

And do I need to populate this in both the RowUpdating and RowEditing events ?
Since mine is so dynamic; I guess I"m going to have to pull down each field based on the dropdown table selected using a query against sysobjects.

I wish I could keep the standard edit functionality without having to define everything but I'm not sure how to get the system to auto-generate the updatecommand and deletecommand when the table is changed on the sqlconnection by a dropdown.

 

by: JZoermanPosted on 2008-06-17 at 13:05:25ID: 21806949

Understand that the auto generate Update, Delete, and Insert statements generated by the wizard are created at design time, they are not generated at run time. Executing stored procedures based on the table selected would likely be best. Alternatively you could store the SQL statements in your code behind, one for each command, for each table. Obviously, this would be a problem if the number tables you wish to access is an in-determinate number. In that case, you would have to write a procedure to generate an SQL statement based on the table definition.

Couple questions, how do you want to handle or store the necessary SQL statements? Also, are you making available a set number of tables for viewing or will that number also be dynamic?

 

by: sny23vpbPosted on 2008-06-17 at 14:06:45ID: 21807483

Thanks. There are many tables. And it will be best if the system will automatically handle new tables in the sysobjects table without further intervention.

The only way I can think of to do that would be to write the updatecommand to dynamically determine the fields and parameters which I think would just be something like
sqldatasource.updatecommand="UPDATE [temp_tbl] SET [task] = @task  WHERE [ID] = @original_ID AND [task] = @original_task"

Then. Either the GridView1_RowUpdating or GridView1_RowEditing will have to somehow reference the row your on with code like:  ("TASK")= gridview1.task  ; but I"m not certain of how this syntax should work and have not located any good samples.

I presume I would do likewise for delete; but either use the detailsview for the insert process or dynamically create a union query to create a blank row for inserts off the grid.

I'm increasing points for all your trouble; please forward any thoughts you may have on how the syntax for the grid-updating event might work as well as anything you see that I'm missing.  All the examples I've seen are just not applicable.

 

by: JZoermanPosted on 2008-06-18 at 07:37:07ID: 21813347

Specify the GridView1.EditIndex = e.NewEditIndex in RowEditing event.

The trick here is to dynamically generate SQL statements based on the DataSet (see snippet for basic sample).  Then in RowCommand event, run the dynamically generated SQL statement.

As too which row will be updated will be GridView1.EditIndex. Note, you will have to provide some logic to identify which field is the identity.

To retrieve the edited values from the GridView you can use GridView1.Rows(GridView1.EditIndex).Cells(X).Text

No doubt this scenario is going to force you to write a legitimate amount of code. Hopefully this is enough information to get you going.

 Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
        'Convert row to edit mode
        GridView1.EditIndex = e.NewEditIndex
        ShowGrid()
    End Sub
 
  Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
        Select Case e.CommandName
            Case "Update"
                'Run update SQL statement
        End Select
    End Sub
 
  Protected Function GenSQLUpdate(ByRef ds As DataSet) As String
 
        GenSQLUpdate = "UPDATE " & DropDownList1.SelectedValue & " SET "
 
        For i As Integer = 0 To ds.Tables(0).Columns.Count - 1
            GenSQLUpdate = GenSQLUpdate & ds.Tables(0).Columns(i).ColumnName & "=@" & ds.Tables(0).Columns(i).ColumnName
            If i < ds.Tables(0).Columns.Count - 1 Then GenSQLUpdate = GenSQLUpdate & ","
        Next
 
        'Add where clause here
        GenSQLUpdate = GenSQLUpdate & " WHERE " & ds.Tables(0).Columns(0).ColumnName & "=@ID"
 
        Response.Write(GenSQLUpdate)
        Session("sqlUpdate") = GenSQLUpdate
 
    End Function

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:

Select allOpen in new window

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...