REPOST: Column [blah] is readonly on Datagrid UpdateCommand event

  • Thread starter Learning SQL Server
  • Start date
L

Learning SQL Server

Forgive the repost, but this is really troublesome and I hope SOMEONE can
shed some light on it.

I am trying to update a datarow via in-place editing from a dataset stored
in session.

When I try to write the new value into the selected row, I always get the
following error : Column [blah] is read-only.

in my UpdateCommand event I have:

' obtain the dataset saved in session on first page load.
dim objDS as DataSet = Ctype(Session("foo"), DataSet)

' then select the row I want to update from the first table in the
collection,
' using the text in the second cell as the criteria.
If IsNothing(objDS) = false then
dim objDT as DataTable = objDS.Tables(0)
dim objRow as DataRow = objDT.Select("Type=" +
e.Item.Cells(1).Text.ToString)

' TERMINATES ON THIS LINE:
objRow(0)("Column1") = CType(e.Item.Cells(2).Controls(0), TextBox).Text
...
End If

When I check the Immediate window to find out what the state of my dataset
is, all the columns have the following attribute set:
Readonly = true

And I have no idea why this is. Is it because the dataset is being pulled
from a session variable???

I am following the example provided in Dino Esposito's text Building Web
Solutions with ASP.NET and ADO.NET. This doesnt work though. Why?
 
B

Bob Johnson

Almost every field in the dataset model that would actually be useful is
Read Only. Thats my biggest complaint with the stupid thing.


Learning SQL Server said:
Solved. Hooray for me. Maybe someone can clarify this:
I stumbled across a posting elsewhere that recommended looping through each
column and setting the ReadOnly attribute to "False". And this caused the
update to occur properly. The column is not a key, and its not a view (it is
a table), so why would these start as Readonly to begin with???



Learning SQL Server said:
Forgive the repost, but this is really troublesome and I hope SOMEONE can
shed some light on it.

I am trying to update a datarow via in-place editing from a dataset stored
in session.

When I try to write the new value into the selected row, I always get the
following error : Column [blah] is read-only.

in my UpdateCommand event I have:

' obtain the dataset saved in session on first page load.
dim objDS as DataSet = Ctype(Session("foo"), DataSet)

' then select the row I want to update from the first table in the
collection,
' using the text in the second cell as the criteria.
If IsNothing(objDS) = false then
dim objDT as DataTable = objDS.Tables(0)
dim objRow as DataRow = objDT.Select("Type=" +
e.Item.Cells(1).Text.ToString)

' TERMINATES ON THIS LINE:
objRow(0)("Column1") = CType(e.Item.Cells(2).Controls(0), TextBox).Text
...
End If

When I check the Immediate window to find out what the state of my dataset
is, all the columns have the following attribute set:
Readonly = true

And I have no idea why this is. Is it because the dataset is being pulled
from a session variable???

I am following the example provided in Dino Esposito's text Building Web
Solutions with ASP.NET and ADO.NET. This doesnt work though. Why?
 
L

Learning SQL Server

Bob:

Thanks for the reply.

That IS silly. Additionally, I see very little in (at least my)
books/documentation that discusses the Readonly attribute being the default
state for the DataColumn object in a DataTable (it is NOT discussed in the
example of this book I am reading).



Bob Johnson said:
Almost every field in the dataset model that would actually be useful is
Read Only. Thats my biggest complaint with the stupid thing.


Learning SQL Server said:
Solved. Hooray for me. Maybe someone can clarify this:
I stumbled across a posting elsewhere that recommended looping through each
column and setting the ReadOnly attribute to "False". And this caused the
update to occur properly. The column is not a key, and its not a view
(it
is
a table), so why would these start as Readonly to begin with???



Learning SQL Server said:
Forgive the repost, but this is really troublesome and I hope SOMEONE can
shed some light on it.

I am trying to update a datarow via in-place editing from a dataset stored
in session.

When I try to write the new value into the selected row, I always get the
following error : Column [blah] is read-only.

in my UpdateCommand event I have:

' obtain the dataset saved in session on first page load.
dim objDS as DataSet = Ctype(Session("foo"), DataSet)

' then select the row I want to update from the first table in the
collection,
' using the text in the second cell as the criteria.
If IsNothing(objDS) = false then
dim objDT as DataTable = objDS.Tables(0)
dim objRow as DataRow = objDT.Select("Type=" +
e.Item.Cells(1).Text.ToString)

' TERMINATES ON THIS LINE:
objRow(0)("Column1") = CType(e.Item.Cells(2).Controls(0), TextBox).Text
...
End If

When I check the Immediate window to find out what the state of my dataset
is, all the columns have the following attribute set:
Readonly = true

And I have no idea why this is. Is it because the dataset is being pulled
from a session variable???

I am following the example provided in Dino Esposito's text Building Web
Solutions with ASP.NET and ADO.NET. This doesnt work though. Why?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Staff online

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top