ADO.NET :: Getting SQL Duplicate Key Exception With No Duplicate Key?
Jan 20, 2011
Regarding Linq to SQL with .SQLEXPRESS and VS2010 on Windows 7, I am trying to add a list of entries to an empty table that I have confirmed programmatically does not have duplicate keys. Some info about the situation:Note: The key strings have Unicode characters (English and Chinese mixed).
When we have anything that requires user input (Eg adding a product to a database) the Edit screen looks the same as the add screen. When using MVC .Net how do you handle this? Do you return the same view? Just adjust the model to reflect the change?
I Have an ASP:Table that has a row with cells in I need to be able to add a row to this by clicking the Add button at the end which duplicates the existing row. My Table code
My c# code behind - I get no errors but no duplicate row
protected void Button1_Click(object sender, System.EventArgs e) { // Total number of rows. int rowCnt; // Current row count. int rowCtr; // Total number of cells per row (columns). int cellCtr; // Current cell counter int cellCnt; rowCnt = int.Parse(TextBox1.Text); cellCnt = int.Parse(TextBox2.Text); for (rowCtr = 1; rowCtr <= rowCnt; rowCtr++) { // Create new row and add it to the table. TableRow tRow = new TableRow(); Table1.Rows.Add(tRow); for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++) { // Create a new cell and add it to the row. TableCell tCell = new TableCell(); tCell.Text = "Row " + rowCtr + ", Cell " + cellCtr; tRow.Cells.Add(tCell); } } }
I want to check for duplicate records,if the record is already inserted then "record has already been inserted" should appear or else if its a new record then it should be inserted.. This function is inserting even if it exists and showing the error msg..
Sub CheckForDuplicateRec() Dim da As SqlDataAdapter Dim ds As New DataSet Dim dt As New DataTable cmd = New SqlCommand("Select * from Table3 where Name='" & txtname.Text & "' AND FName='" & txtfathersname.Text & "' AND MName='" & txtmothername.Text & "' AND Add1='" & txtadd.Text & "' AND Add2='" & txtadd2.Text & "' AND Add3='" & txtadd3.Text & "' AND City='" & txtcity.Text & "' AND State='" & ddlstates.SelectedValue & "' AND Pincode=" & txtpincode.Text & "", con) da = New SqlDataAdapter(cmd) da.Fill(ds) dt = ds.Tables("Table3") If dt.Rows.Count = 0 Then cmd = New SqlCommand("Insert into Table3 (Name,FName,MName,Add1,Add2,Add3,City,State,PinCode) values('" & txtname.Text & "','" & txtfathersname.Text & "','" & txtmothername.Text & "','" & txtadd.Text & "','" & txtadd2.Text & "','" & txtadd3.Text & "','" & txtcity.Text & "','" & ddlstates.SelectedValue & "','" & txtpincode.Text & "')", con) cmd.ExecuteNonQuery() Else lblError.Text = "Records already exists" End If End Sub
I'm designing a web page with two dropdownlists, one for the Make of a car, the other for the Model, both bound to a database with separate SQLDataSources, and using a distinct statement. I add "All" at the top of both by setting appendDataBoundItems = true and adding items named all. Then when I fill the Make with a querystring all the model items get added twice (but only the databound items).Here's my code:
<asp:DropDownList ID="DropDownMake" runat="server" DataSourceID="SqlMakes" DataTextField="Make" DataValueField="Make" AppendDataBoundItems="True" EnableViewState="False" AutoPostBack="True"> <asp:ListItem Selected="True" Value="All">All</asp:ListItem> </asp:DropDownList> <asp:DropDownList ID="DropDownModel" runat="server" AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlModels" DataTextField="Model" DataValueField="Model" EnableViewState="False"> <asp:ListItem>All</asp:ListItem> </asp:DropDownList> <asp:SqlDataSource ID="SqlMakes" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT DISTINCT [Make] FROM [Parts]"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlModels" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT DISTINCT [Model] FROM [Parts] WHERE ([Make] = @Make)"> <SelectParameters> <asp:ControlParameter ControlID="DropDownMake" Name="Make" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> 'And in the VB file: Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init DropDownMake.SelectedValue = Request.QueryString("Make") DropDownModel.SelectedValue = Request.QueryString("Model") End Sub
If I remove the line "DropDownMake.SelectedValue = Request.QueryString("Make")" it doesnt produce duplicates anymore. What is going on?? I swear I've spent more time developing entire iphone app.
i have a dropdownlist (asp.net control) and a listbox control and a Add button when the user select the item from dropdownlist and click on add button to add to the listbox.
how can i prevent the user from adding duplciate items and alert saying its already in the listbox?
UPDATE:
in my particular scenario, i have a dropdwonlist and adding the item to listbox both are asp.net controls and i am adding the items from code-behind and your solution is pure on client side, is there a way i can read the listbox and compare and alert the message?
Simple one here... is there a clean way of preventing a user from double-clicking a button in a web form and thus causing duplicate events to fire?
If I had a comment form for example and the user types in "this is my comment" and clicks submit, the comment is shown below... however if they double-click, triple-click or just go nuts on the keyboard they can cause multiple versions to be posted.
Client-side I could quite easily disable the button onclick - but I prefer server-side solutions to things like this
Is there a postback timeout per viewstate that can be set for example?
I am calling a web service in my aspx page. the web service (written in java) is acting as a middleware between my system and another system (Siebel) to which I send services and get response for these services. some requests are synchronous. Sometimes when invoking a method the response takes a long time to respond, so a time out exception is thrown.
The problem is that the web service is receiving the same request many times despite I am calling it only once.In my log file and database entries it is clear that the request is called only once. but in the middleware and Siebel side they are receving four or five requests for the same request sent by me.
Is this a bug in asp.net. is it possible that the server where my application is deployed is sending the request many times when not getting the response.Note: iam using Visual studion 2005. the application is deployed to windows server 2003.Iam not discussing the problem of time out. iam asking about the duplicate issue.
I have a program that parser html and collecting urls. The problem is when checking for duplicates before I add them to an arraylist is that I cannot distinguish between types of the following format:
I have an ASP:Table that has one row in by default. I would like to give the user the ability to, by clicking a button, add the same row again to enable more data entry. The end result being that I can commit the data in the rows to a SQL database.
I am facing a serious problem here.i developing a college project and in admission page there are a field student_code(in database ) which is manually auto generate but not unique.so I use like following.
I have a webform which users fill in and all fields are submitted to table. How do I check that the record doesn't already exist in the table before the data is submitted? And if the data does exist I'd like to display error message label.
I have two DataSet were mention below DataSet1 & DataSet2. DataSet1 records are already in User Database table. I would like to insert the DataSet2 records to User table, Before going to insert the Dataset2, I am trying to check the duplicate records in DataSet2 Compare with DataSet1. How to identify the duplicate records in DataSet2 using LINQ. I want to Get the List of Duplicate record set. Or Return the True Or False. Note: In User table SiteId and UserName is Combinational primary key Records.
The SQL is below - each result is coming up 3 times rather than just once.
SELECT Consignments.LegacyID, TripDate, CollectionName, DeliveryName, Pallets, Weight, BaseRate, Consignments.FuelSurcharge, AdditionalCharges, BaseRate * Quantity AS 'InvoiceValue', Consignments.Customer, InvoiceNumber, CASE WHEN child.LegacyID = Consignments.Customer THEN child.LegacyID WHEN parent.LegacyID = Consignments.Customer THEN parent.LegacyID ELSE this.LegacyID END AS 'InvoiceAcc' FROM SageAccount this LEFT JOIN SageAccount parent on parent.LegacyID = this.InvoiceAccount LEFT JOIN SageAccount child on this.LegacyID = child.InvoiceAccount JOIN Consignments on (Consignments.Customer = this.LegacyID AND this.Customer = 'True') OR (Consignments.Customer = parent.LegacyID AND parent.Customer = 'True') OR (Consignments.Customer = child.LegacyID AND child.Customer = 'True') WHERE (this.LegacyID = @Customer) AND (TripDate BETWEEN @fromdate AND @todate) AND (InvoiceNumber IS NOT NULL)
The SQL was given to me for another similar query, but this time I have modified it to try to use it for the query I'm doing now, so I'm assuming that I'm doing something stupid.
I'm wondering if it's possible to duplicate the same page on two monitors. So sorta like split view, but instead of just split in the middle have it duplicate in a new window.
Requirment is: while enterening the value you should know that this values is already we have used in data base for that textbox field.Please give code in .aspx and .aspx.cs with database if any
I have a list of 'client_object', and I want to copy this list into another, I've tried to do a CopyTo, but when I change any value in any list, the chages are done in both..I would like to create a duplicate of the objects, not a reference..
I want to create duplicate table, in oracle I am using "create table dup3 as (select distinct * from dup2) " this sql query but when I run this query in SqlServer then error is coming.
from my c# code mail is send to few people but one people getting the same copy twice. i am very confuse about this situation why only one people getting the email of same copy twice when he downloads email from outlook.