DataSource Controls :: LINQ - Update Many Rows With Difference Values?
Apr 8, 2010i want to update many rows with difference values inside table. i'm coding a timetable.
View 3 Repliesi want to update many rows with difference values inside table. i'm coding a timetable.
View 3 Replies[Code]....
In above query I want to have top 10 rows as well as count of all rows.
I would like to write Set difference minus operation with Linq on list objects using Except method. [Code]....
Tha above code always returns lstrbb objects.
I have a simple datatable with 2 fields, one a primary key which I will call PK and other which I will call COL1. I have used the dataset designer to generate update/insert/delete methods on the tableadapter. On my development system two update methods are generated wit hthe follow signatures:
Update(PK as System.String, COL1 as System.Bool, Original_PK as System.String)
Update(COL1 as System.Bool, Original_PK as System.String)
On the production system, however, the latter signature is not generated. What is more preplexing is that prior to today, production operated similar to test. Obviously somethign changed, but I have been unable to identify what.
Unfortunately the method being used now is the latter. Now I can create my own method with a similar signature, but this problem isn't unique to this datatable/tableadapter. I am very hesitent to make thsi change throughout the application, and even more so in touching the several other applications which I fear may have similar issues (though those rely less on generated udpates).
I have an update / insert statements. If the user selects the checkbox IsPrestigeFeatured, I want that row to be set to 1 and I want all other rows to be set to 0. E.g. so there is only one row which is "Is prestige Featured"
My update statement:
ALTER PROCEDURE dbo.Update_Property
@propertyId int,
@propertyTypeId int,
@Name ntext,
@Price int,
@DescriptionResultsExcerpt text,
@Description ntext,
@Characteristics ntext,
@IsRenovation int,
@IsCharacter int,
@IsPrestige int,
@IsHomepageFeatured int,
@IsPrestigeFeatured int,
@CityId int,
@DepartmentId int,
@CommuneId int
As
UPDATE Property
SET Name = @Name, PropertyTypeID = @propertyTypeId, Price = @Price,
DescriptionResultsExcerpt = @DescriptionResultsExcerpt,
Description = @Description, Characteristics = @Characteristics,
IsRenovation = @IsRenovation, IsCharacter = @IsCharacter,
IsPrestige = @IsPrestige, IsHomepageFeatured = @IsHomepageFeatured,
IsPrestigeFeatured = @IsPrestigeFeatured, CityId = @CityId,
DepartmentId = @DepartmentId, CommuneId = @CommuneId
FROM Property
WHERE (PropertyID = @PropertyID)
i have the following objects:
Event:
- EventID (PK)
- GroupID (FK)
- StartDate
Group:
- GroupID (PK)
- GroupName
What i need to do is select the last 5 events for each group using LINQ to Objects. I tried starting with:
[Code]....
But i'm not sure how i only take the last 5 per group.
The simple way of doing this is to get the groups and then have a property on that which returns the last 5 events but if i databind this i will have to use a nested Repeater/ListView. Ideally i would like to have a row foreach event.
Is there any way to update multiple rows in a SQL query without using an foreach statement? In a single query.
View 3 RepliesI am using untyped database bind to gridview in an edit form. Now user makes some changes to that datatable (update, delete, insert). How do I detect which rows he changes and which rows he deleted (so I drop them from DB). I know it can be done easily via table adapters but I am supporting a previously built app using untyped datatables/datasets.
View 9 Repliesis there a way to update a column for all rows in a collection using linq like sql does it
eg. UPDATE myTable SET myColumn='newValue'
Also weighing options as to whether there is better performance using linq to sql for this or straight sql to DB via table adapters etc.
I am running the folowing simple test code:
[Code]....
But the UpdateUser field does not update - it remains at NULL. No errors occur. I can use similar code to update table fields in other dbmls successfully.
I have a method to execute two "Update" sql statements.
The first one works fine and the second one I can't get to work for nothing.
Here is the entire method:
[Code]....
The error I am getting is "Incorrect syntax near '05'."
It is occuring on the next to the last line which is:
dc.ExecuteCommand(sql);
I update the variable "sql" first so I can debug. At the time it crashes the value of sql is:
"Update Blogs set Status = 'Archived', ArchiveDate = 06/22/2010 05:14:46 PM Where (BlogID != 1) and (Status = 'Published') and (AuthorID = 9e37e028-c205-4903-920e-e8643b30a724)"
It appears to be the ArchiveDate that is causing the problem here. The "05" is the hour of the time portion. Both ArcgiveDate and PublishDate are defined exactly the same in the database. If you look at the first dc.ExecuteCommand it does exactly the same
thing with PublishDate (DateTime column) in the same table and it works just fine.
Then I modifed the code and remove the ArchiveDate from the sql statement then I get the error:
"Incorrect syntax near 'e028'."
which as you can see is part of the AuthorIDs value in the where clause. So I am assuming both the date and the Guid / Author ID is causing problems. I have tried enclosing the values in quotes but I just cant make this work even though it seems to be working fine in other places.
I even remove the code for the author ID and left in the code for the ArchiveDate and it still does not work so I have proved that both are causing a problem.
I have a table with Id, Name,...IsActive, etc. If user wants to delete a record from the user, he/she should update the field IsActive to false. I am able to acheive this functionality using the below steps,
1. Query the database for the row which is to be updated.
2. Update the property IsActive to false.
3. Submit the changes to the database.
This way i am successful. But i have a query here is that, when we execute steps 1 and 3, there will be two trips to the database for getting the required object and again updating the same object to the database.
Is this not a performance hit having multiple calls to DB for a simple operation.?
Do we have any other go, where in within a single call to database, can i update a field of row?
I'm studing Linq on TheBeerHouse Project,I would create a my Linq Version.I have a big problem with Updating, this i a part of source :
protected static ArticlesDataContext GetContext()
{
return new ArticlesDataContext(Settings.ConnectionString);
[code]...
I'm trying to figure out how to update multiple rows in my Directory table, when a user changes their Street Number or Street Name in their profile. They can add multiple users to a directory and each user they add to the directory has this primary users UserId in it. So if the primary user changes their address, I want it to update the address for all the users they listed in the directory as well. I'm adding this to the On_Click in the Code Behind, so when they click to update their profile, it fires this function as well. This code may be way off, but here's what I have right now:
[Code]....
I wrote in subject "Is there any way to UPDATE multiple rows WHERE UserID = @UserID_ArrayList" For example I have an Arraylist like this:
Dim UserID_ArrayList As New ArrayList
UserID_ArrayList.add("100")
UserID_ArrayList.add("150"
UserID_ArrayList.add("200")
Now I have to UPDATE some columns inside those 3 records WHERE UserID = @UserID_ArrayList I'm sure it can be done somehow?
I'm trying to add new rows to a data table and then use the sqldataadapter update method bu fund some problems. First, I written this code:
[Code]....
Excuse me but the most part of variable are in italian, however I think it is possible to understand how does it work. If I execute this code I obtain this error:
System.InvalidOperationException: Update requires a valid InsertCommand when passed DataRow collection with new rows.
After this I added these lines of code just above the last line:
SqlCommandBuilder cb = new SqlCommandBuilder(adapter);
adapter.InsertCommand = cb.GetInsertCommand;
and I obtained this error:
Cannot convert method group 'GetInsertCommand' to non-delegate type 'System.Data.SqlClient.SqlCommand'. Did you intend to invoke the method?
Existing records can be updatedNew records can be insertedAll existing records can be deleted & new ones can be insertedExisting records have a primary key field
New ones are just blank inserts
All this detail is stored in a data table. On form update I only want to update existing (only modified rows) & insert new rows. I have gone about loading the changed records in a new data table
DataTable changedRecordsTable = dataTable_old.GetChanges();
How do I compare it with all the records in the old datatable and pass them to the save query ?
How to Fetch Rows based on Values in a Session Variable
View 4 RepliesTrying to do a simple NOT IN cluase, but can't get the Linq syntax to do it.Basically, here's what I am trying to do ( in incorrect syntax):
[Code]....
So, I wasnt to select all rows where d.CD IS NOT one of the values contained in the string array.
I am using Linq to SQL. Tables have timestamp columns and I am using regular Linq methodology in ASP.NET MVC.I do use detached entities and always try to do updates without first querying the database for the original entity. To update an entity I use context.Attach(entity, true) followed by context.SubmitChanges() and all is fine. The sql statement that gets executed looks like:
[Code]...
I like to use my own stored procs as much as possible.
That way I know exactly what's happening and I can explain and control things.
I'm using stored procs with LINQ to SQL for CRUD operations.
For select, insert and delete - using stored procs with LINQ to SQL is pretty straightforward.
However, if I want to use my own custom stored procs with L2S for updates what's the best way to accomplish this?
Can you provide some code that shows the best approach that you would personally choose for this?
I have a form that gets populated by LINQ and I want to be able to update the database using that same form. The form is populated by grabbing a querystring (for example, "edit=10") and searching the primary key for that record. So far so good. I have a button attached to the function below which is supposed to use LINQ to update the database with data from the form. I get no errors, but for some reason, it is only updating one field (Last_Updated) instead of all of them.
[Code]....
I am trying to update my table ARTICLES and it has a field COUNTER, Everytime a user enter this ARTICLES, the page_load event runs a LINQ to SQL query taking the QueryString as parameter, increasing the COUNTER field in 1.
[Code]....
I am creating a database frontend in aspx/C# using LINQ to MSSQL. It has two pages: a main page which lists all of the records, and a page that appears when the user click the "Edit" button next to one of the list items for the user to edit a record.The database table has about 70 user-editable fields. I need to make the edit page, allowing the user to update/insert records. There are a couple ways I can think of make an edit page:Using a LinqDataSource and FormViewUsing a LinqDataSource and DetailsViewManually retrieve the value for each field and set the value for each field directly from Linq (e.g. "projectIDLabel.Text = Convert.ToString(thisRecord.Project_ID)"What would be the best way to design this?
View 4 RepliesI have a "simple" method that takes a Linq entity containing the information I want to update. The method then creates a list of counties the information is to be updated for, and tries to update the information for each county.
So user goes in fills form out selects update All counties, and the information in the form should be updated for all the counties for the member. Here is the code.
[Code]....
The first pass through the foreach runs perfectly, the second time through I get an error: Cannot attach an entity that already exists.
What is best way to work around this?
I have though about putting the foreach loop in my business_logic layer, and have it pass both the newRecord and OldRecord, but figured I would ask, before making the code change.