C# - SqlDataAdapter.Fill(DataTable) Returns No Rows?
Feb 7, 2011
I am trying to use a SqlDataAdapter to fill a DataTable, which I use as a data source to a DataGrid. The query is fine, at least when I run it manually in SSMSE. When I do the fill operation, the table gets the right columns, but no rows. The most frustrating part of this is that the code is identical (with a different query) on a different page. I cannot post the query, but my initialization code looks like this:
SqlCommand areaDAC = new SqlCommand (areaQuery, connection);
areaDAC.Parameters.Add (new SqlParameter ("@param", System.Data.SqlDbType.NVarChar, 50));
m_areaDataAdapter = new SqlDataAdapter (areaDAC);
At this point, table has the right number of columns and no rows. I know the parameters are being added correctly, I know that data exists for the given query.
I am not clear when do I want to use a webservice over a sqlDataAdapter for dataRetrieval. I want to populate a repeater control which I have been doing from a dataTable that I fill from a sqlDataAdapter. Is there criteria when I would want to use a webservice to fill my dataTable?
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?
I have a DataTable for which a PrimaryKey constraint has been set to be a combination of an integer column and a datetime column. When I try to 'Find' a row by saying,
dtFunds.Rows.Find(iContainerIndex)
I get a null value. iContainerIndex has been defined as an object array of size 2 with the integer ID and date values in it.
When I set a breakpoint in my code, I see that the very same values are present in the datatable.
If I try to execute, DataTable.Select() method with the integer column filter, I get a result - but returns no result when called with the date column filter.
What am I doing wrong here? The very same DateTime value is present in the datatable.
This issue has stumped me for a while. Hopefully someone here can give me some insight.
When my site runs the following code it works just fine 99% of the time.
[Code]....
The command is calling a SQL Server 2005 stored procedure that takes 20 parameters and returns 6 tables of about 5-50 rows each. The paramters are all NVARCHAR, INT, or BIT data types. Only one of the parameters is Input/Output. There is a total of about 100 rows returned. Normally this takes a fraction of a second, but for some queries, it times out after 30 seconds.
When I run the exact same query in the Management Studio query window it takes 1 second.
what I can do to get the same performance from .Net as I am getting from Management Studio?
CS1061: 'System.Data.SqlClient.SqlDataAdapter' does not contain a definition for 'Rows' and no extension method 'Rows' accepting a first argument of type 'System.Data.SqlClient.SqlDataAdapter' could be found.
I have one big DataTable with X rows. I want to select Y rows from it and bind them to a new ViewList. While doing it, I want to delete these rows from the DataTable (Having X - Y rows).
What is the best and fast way to do it?
I don't know if it is better to create a new DataTable to have the Y and after that bind them to a ViewList or something else?
I'm also looking for example in code how to select/delete rows from DataTable.
I have a DataTable of available time slots. I have another DataTable of reserved time slots. I need to remove from the list of available slots the ones that have been reserved. The blocks are in 15 minute increments, but one of my problems is that the reservation can be longer than 15 minutes. I've had some luck removing one or two, but not all of the required columns.
I have a dataset with a table adapter that has several queries. I want to execute on of the queries and fill a data table but am having trouble with this operation. Am I invoking my table adapter incorrectly? See line 56.
I am trying to run a linq query but I need the result as a datatable as I am using that to store records from different queries in the same viewstate object.The 2 versions below compile, but return an empty set. The exact error is "Value cannot be null.Parameter name: source". (and yes I have checked there is data):
MyDatabaseDataContext db = new MyDatabaseDataContext(conn); IEnumerable<DataRow> queryProjects = (from DataRow p in db.STREAM_PROJECTs.AsEnumerable()
I tried to use typed dataset with a simple query and i got the report working.
Now, i am trying to do is:
I made a class in a project. That class just contains a simple function with a select query. This query returns a datatable. I just want to use all the fields returned by the datatable in the report.
Is there any solution to this ? or my approach is wrong ?
I try to programmatically fill the 8 using a single datatable. Each dropdownlist has its own column in the datatable and is supposed to display only the column that corresponds to it. It does display the column it is supposed to however it also displays a number of empty slots equal to all the other columns combined.Here is the code can someone tell me why I get the empty slots?
Since I am not using a DataSourceId at the markup I am having to create my own Sorting handler. I found a sample on MSDN but the variable 'dataTable' always returns null why?
I am having a gridview with alternative color i have used AlternatingRowsDefaultCellStyle. however, if my grid is not fullyfilled, ie the grid view page size is 20 and i have only 10 records in that page then the alternate row color will not apply for blank rows. My question is, How can I fill the blank rows with alternate color as well.
Hope there is some solution without adding empty rows at the end of the datasoure which will create problems while sorting the grids.
Iam confronted with a really weird issue the like of which ive never seen before. I recently developed a web application using ASP.net and launched it for my company, during the bug testing stages everything seemed fine, but once it was actually in production i started getting these weird errors that all stem from it not retrieving the correct rows.
The issue is this, sometimes the queries sent to the back end only return a partial amount of the rows actualyl requested, so if a user has a page loaded thats suppose to return X number of rows, they can sometimes get X - Y number of rows, and upon refreshing the page they get X - Z number of rows, and refreshing the same exact page again they might get X number of rows they were initially suppose to see. I've never seen anything like this before so Iam stumped.
I consulted some of the old developers in the company I used to work for, for assistance but when explaining and showing the problem they too were very confused with the issue.
I have a datatable which has an amount column & a status column.I want to sum only those rows who have status '1'. How to do this ?I am summing the column via datatable Compute method.