ADO.NET :: Insert New Records In Tables From Dataset To Database?
Aug 27, 2010
I have 2 tables in SqlServer 2008.
Table1: T1id, SomeData
Table2: T2id, T1id, SomeData
I am using DataAdapter.FillSchema to create shema of tables in DataSet. I created DataRelation on columns
T1id in both tables.
Now when i try to Update Sql Database T1id in Table2 remains 0 and not the value of T1id in Table1.
I can successfully update Sql Database if i fill DataSet with records first (Using DataAdapter.Fill), but that's not what i want to do. I don't need "old" records in my dataset. I want to use dataset just to store all imputs from user until the proccess is done and then insert all those records "at the same time".
I have a simple sql that selects records from some tables and insert them in one other table.This is what we need to do on a daily basis and we need to create a sql job for this.
I'm trying to use a DataSet to maintain some rows for a table, and when I've finished my changes, send all changes to the database using a SqlDataAdapter.
I find if there are no rows in the table in the database then I am getting a 'Object reference not set to an instance of an object' when I try to access the table in the Dataset.
Is there a way to work with a Dataset like this ie. I start off with an empty table and I wish to add rows, to access the structure of the table rows, build rows, then add them and do the update on the SQLDataAdapter.
I am getting Resultset from SQL server2005.It contains 4 tables.
Dataset ds=new Dataset();
ds=BLogiclayer1.TestMethod1(a,b,c,d);. This normal Dataset ds contains Resultset. ( I am working with RDLC reports. I added a Typed dataset to my project. I am using Typed Dataset as report dataset.) I want to add normal Dataset all the table values to Typed Dataset table as rows i. e. only one table in Typed dataset.I am trying like below.
//Typed Dataset name that I have added is salesdata.
I am working with VS 2010, Entity framework, SQl-Server 2005, ASP.Net web forms. Currently, I am working on the Data access layer library which soon will be a web service, using Entity Framework collaboration with different design patterns like repository pattern and some best practices that posts in different blogs. I am also test each repository using the Unit testing project. Thumbs up! Working fine.
The thing I am worried about is, how much is good for retrieving data from a table that can contain 80-100k records ?
I a problem defining the variable @Bestilling in the codeBehind for adding the record to the database using a single form page. The database design with corresponding form are as below:
My ASPX.CS:
private void GridView1_BindData() { SqlConnection conn = new SqlConnection(connStr); SqlDataAdapter dAd = new SqlDataAdapter("SELECT kart_DemoOrder.OrderID,
[Code]....
I get error in the method: "GridView1_AddNewRecord".
Must declare the scalar variable "@BestillingID". Is there a way to use only one Add Method and not two as I did?
I am inserting the records in Database thru asp.net??One of the columns is unique, I want that suppose the user inserted the same value once,control goes to catch block, I wnat to show my own error message ,only if unique index is same ,Rest for the other exceptions,it thrown by .Net?/
currently I am doing an online store project using an example from one of your tutorials. In the grid view is populated with data and at the below of the grid view, there is a row of empty fields populated below. After user have enter all the necessary info and clicks on the Add New link, the data will be inserted into the database and it will also be displayed in the grid view itself. The software that I am using is called: MS VS 2008 C# The database that I am using is called: MS SQL Server 2008 This is the database.cs for inserting records into the database:
Code:
public bool Insert_ItemsRecords(string id, string itemName, string itemDesc) { SqlCommand cmd_ItemsList = new SqlCommand(); cmd_ItemsList.CommandText = "[VRM].[INSERT_ItemsRecords]"; cmd_ItemsList.CommandType = CommandType.StoredProcedure; cmd_ItemsList.Parameters.Clear(); SqlParameter sqlParaID = new SqlParameter("@id", SqlDbType.VarChar, 10); sqlParaID.Value = id; cmd_ItemsList.Parameters.Add(sqlParaID); SqlParameter sqlParaItemName = new SqlParameter("@itemName", SqlDbType.VarChar, 100); sqlParaItemName.Value = itemName; cmd_ItemsList.Parameters.Add(sqlParaItemName); SqlParameter sqlParaItemDesc = new SqlParameter("@itemDesc", SqlDbType.VarChar, 1000); sqlParaItemDesc.Value = itemDesc; cmd_ItemsList.Parameters.Add(sqlParaItemDesc); return executeNotQuery(cmd_ItemsList); } This is the stored procedure:
Code:
ALTER PROCEDURE [OS].[INSERT_ItemsRecords] @id varchar(10), @itemName varchar(100), @itemDesc varchar(1000) .................
But the result is it only insert the first row of the HQDS dataset...then it will give this error :"Violation of PRIMARY KEY constraint 'PK_BRANCH'. Cannot insert duplicate key in object dbo.TS_BRANCH'.The statement has been terminated.
If I comment this line : Destadapter.Fill(HQds, "Testresult")
It doesn't give any error and also it doesn't insert anything to the database.
Violation of PRIMARY KEY constraint 'PK_TS_BRANCH'. Cannot insert duplicate key in object 'dbo.TS_BRANCH'.
currently I am doing a web application project using 3-tier formating to do out the project. In the grid view is displayed with data retrieved from the database and at the footer there is a row of empty fields for the user to insert records into database and when user clicks on Add New, a new row of empty fields will be populated below.
The database.cs and stored procedure is used to stored the data into the database.
[Code]....
This is the stored procedure code:
[Code]....
I am not sure of how to code out for the business logic?
I code this in business logic but its wrong as the error states the Insert method could not be found:
I have Gridview on my webapplication and it is getting filled with multiple rows . When clicked on Save I want to Insert all rows without calling multiple database hits.
Is there any way I can insert all rows by single db hit?
I do have a details view, which insert data to a database table using SQL Datasource. Now i need the data to be inserted in to 2 tables instead of one.
I have a Winform that has fields need to be filled by a user. All the fields doesn't belong to one table, the data will go to Customer table and CustomerPhone table, so i decided to do multiple inserts. I will insert appropriate data to CustomerPhone first then Insert the rest data to Customer table.
Conseptually what I'm doing is simple, and technically it may even be simple, but I'm still rusty. Here's what I'm trying to do:
I have a webform that allows the user to enter a new record, and in there I have also included a couple FileUpload controls. Upon clicking the "Save" button, I'm saving the details entered into one table (ITEMS), and also inserting the FileUpload details (path, id, upload_user) into another table ATTACHMNTS). Because one ITEM can have many attachments, I needed to split the tables up. So on save, I need to save the ITEM, save the ATTACHMENT, and then also put the ITEM_ID in the ATTACHMENT table. I'm second guessing myself because I think all I'd have to do is after I do the ITEM insert, do a SELECT MAX on the ITEM table and hold the newest (MAX) id in a variable and then use it in the ATTACHMENTS update. I'm not 100% on this because there IS a chance that someone else could save a few milliseconds later and I'll link the wrong ITEM. See my delima?
I have 5 tables of which one has a primary key called "pid" as follows in patientdetails table the pid of a patient is used to compare the pid in remaining tables so the data in matching pid records can be stored in dataset. I tried using stored procedure to get them together in one dataset but it just doesent happen. This is my stored procedure,
[Code]....
I think the execution doesent proceed after the first if exists statements, because only the data in patientdetails is stored in dataset. and one more thing. all test tables need not contain a data against every pid in patientdetails table.