How to remove datatable from dataset?
Solution 1
You only need this
selectedData.Tables.Remove(dt);
But it would be better if you first check that DataSet
contains the table which you are trying to remove. Also check if the DataTable
can be removed from DataSet
as pointed by Gianni B
.
if(selectedData.Tables.Contains(dt.name) && selectedData.Tables.CanRemove(dt))
selectedData.Tables.Remove(dt);
Remove
method does not return anything. It's return type
is void
You are trying to assign a datatable returned
by Remove
method while actually it doesn't return anything
Solution 2
The line which you have written
DataTable dt = selectedData.Tables.Remove(dt);
is wrong, as remove method does not return anything.
So you need to change your code as
selectedData.Tables.Remove(dt);
if(selectedData != null && selectedData.Tables.Count > 0)
{
DataTable dt = selectedData.Tables[0];
}
Solution 3
Try this:
DataTable dtDelete = new DataTable();
dtDelete = ds_RecipeData.Tables[0]
if (ds_RecipeData.Tables.Contains(dtDelete.TableName))
if (ds_RecipeData.Tables.CanRemove(dtDelete))
ds_RecipeData.Tables.Remove(dtDelete);
laurence keith albano
A Computer Engineer. Music enthusiasts, Programmer.
Updated on June 04, 2022Comments
-
laurence keith albano almost 2 years
.aspx
code:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SearchCustomer.aspx.cs" Inherits="WebApplication1.eyeofheaven.SearchCustomer" %> <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <link rel="stylesheet" type="text/css" href="StyleSheets/SearchCustomerStyle.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> <title>Search Customer</title> </head> <body> <form id="form1" runat="server"> <div class="row"> <div class="twelve columns"> <!-- Header--> <div class="container"> <nav role="navigation" class="navbar navbar-inverse navbar-fixed-top"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <!-- Collection of nav links, forms, and other content for toggling --> <div id="navbarCollapse" class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <li><a href="EyeOfHeaven.aspx">Home</a></li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle active" href="#">Search<b class="caret"></b></a> <ul role="menu" class="dropdown-menu"> <li><a href="SearchCustomer.aspx">Search Form(Customer)</a></li> <li><a href="SearchVehicle.aspx">Search Form(Vehicle)</a></li> </ul> </li> </ul> </div> </nav> </div> </div> </div> <!-- Search form customer--> <div id="searchcustomer" class="page-header"> <h3><span class="glyphicon glyphicon-th-large"></span>Search Customer</h3> </div> <div class="row"> <div class="col-md-4"> <input type="text" runat="server" id="search" size="20" class="form-control" placeholder="Customer ID"> </div> <div class="col-md-4"> <select class="form-control" runat="server" id="Country"> <option value="select" selected disabled>Search by Country</option> <option value="A:C ESTUDIO">A:C ESTUDIO</option> <option value="Aaron McEwen-194712">Aaron McEwen-194712</option> <option value="Accra">Accra</option> <option value="Adoany">Adoany</option> <option value="Aduanas">Aduanas</option> <option value="Alex Sanchez-259029">Alex Sanchez-259029</option> <option value="ALG Consulting-288078">ALG Consulting-288078</option> <option value="Algeria">Algeria</option> <option value="Algimantas Ramaskevicius">Algimantas Ramaskevicius</option> </select> </div> <div class="col-md-4"> <select class="form-control" runat="server" id="Currency"> <option value="selected" selected disabled>Search by Currency</option> <option value="AUD">AUD (Australian Dollar)</option> <option value="EUR">EUR (Euro)</option> <option value="GBP">GBP (United Kingdom Pounds)</option> <option value="JPY">JPY (Japan Yen)</option> <option value="NZD">NZD (New Zealand Dollar)</option> </select> </div> </div> <div class="row"> <div class="col-md-4"> <button type="button" runat="server" onserverclick="Button1_Click" id="searchinfo" class="btn btn-primary"><span class="glyphicon glyphicon-search"></span> Search Info</button> <button type="button" runat="server" onserverclick="Button2_Click" id="Button2" class="btn btn-danger"><span class="glyphicon glyphicon-repeat"></span>Reset</button> </div> </div> <!-- Information Table--> <div id="gridview"> <asp:GridView runat="Server" id="data" CssClass="table table-striped table-bordered table-responsive"> </asp:GridView> </div> </form> </body> </html>
.aspx
code behind:using MSSQLConnector; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication1.eyeofheaven { public partial class SearchCustomer : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { MSConnector connector = new MSConnector(); connector.ConnectionString = "SERVER=xbetasql,52292;UID=username;Password=secret;DATABASE=ATDBSQL;"; string customer = (this.search.Value); string country = (this.Country.Value); string idcurrency = (this.Currency.Value); string query = null; if (country != "select") { if (idcurrency != "selected") { query = "select * from customer where country = '" + country + "' and idcurrency = '" + idcurrency + "'"; } else { query = "select * from customer where country = '" + country + "'"; } } DataSet selectedData = connector.ExecuteQuery(query); DataTable dt = selectedData.Tables[0]; if (dt.Rows.Count > 0) { data.DataSource = dt; data.DataBind(); } else { Response.Write("<script>alert('No Data Found.')</script>"); } } protected void Button2_Click(object sender, EventArgs e, MSConnector connector, string query) { DataSet selectedData = connector.ExecuteQuery(query); DataTable dt = selectedData.Tables.Remove(dt); this.search.Value = ""; this.Country.Value = "select"; this.Currency.Value = "selected"; } } }
I have a problem in my code, I want to remove the
datatable
fromdataset
when I click onButton2_Click
as a reset button for all. But I have an error in my code in here:DataTable dt = selectedData.Tables.Remove(dt);
It says:
Cannot implicitly convert type 'void' to 'System.Data.DataTable'
Does passing my
dataset
anddatatable
is the problem on the functionButton2_Click()
? -
Chandan Kumar almost 9 yearsfirst of all you need to define your dataset outside of button1 and button2 - means centralized place. in your code, inside button1 you are defining your dataset which is unknown to button2. Then you can write this code inside button2.
-
Gianni B. almost 9 yearsI would also check if my dataset contains the table and if the table can be removed with this:
if(selectedData.Tables.Contains(dt.name) && selectedData.Tables.CanRemove(dt))
-
TristanK about 2 yearsIn this case, it was right - it was just that a return code was being sought, and wasn't what was expected.