2015-06-09 4 views
1

Aspx код:Как удалить datatable из набора данных?

<%@ 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 код позади:

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"; 

     } 
    } 
} 

У меня есть проблема в моем коде, я хочу, чтобы удалить DataTable из набора данных, когда я нажимаю на button2_Click как кнопка сброса для всех , Но у меня есть ошибка в моем коде здесь:

DataTable dt = selectedData.Tables.Remove(dt); 

Он говорит: «Не удается неявно преобразовать тип„пустоту“в" System.Data.DataTable»

ли проходит мой набор данных и DataTable проблема по функции Button2_Click()? Пожалуйста помоги.

ответ

2

Вам нужно только это

selectedData.Tables.Remove(dt); 

Но было бы лучше, если бы вы сначала проверить, что DataSet содержит таблицу, в которой вы пытаетесь удалить. Также проверьте, можно ли удалить DataTable с DataSet, как указано Gianni B.

if(selectedData.Tables.Contains(dt.name) && selectedData.Tables.CanRemove(dt)) 
    selectedData.Tables.Remove(dt); 

Remove способ не возвращает ничего. Это return type является void Вы пытаетесь назначить datatable returned по Remove метод в то время как на самом деле это ничего

+0

Я хотел бы также проверить, если мой набор данных содержит таблицу, и если таблица может быть удалена с этим: 'если (selectedData.Tables.Contains (dt.name) && selectedData.Tables.CanRemove (dt)) ' –

+0

Да, хорошая точка, я обновлю свой ответ. – Mairaj

2

линии, которые вы написали

DataTable dt = selectedData.Tables.Remove(dt); 

неправильно не возвращается, так как способ удалить не возвращает ничего.

Таким образом, вы должны изменить свой код, как

selectedData.Tables.Remove(dt); 
if(selectedData != null && selectedData.Tables.Count > 0) 
{ 
    DataTable dt = selectedData.Tables[0]; 
} 
+0

Добавляю ли я это на Button1_Click() сэр? .. –

+0

Прежде всего, вам необходимо определить ваш набор данных за пределами кнопки 1 и кнопки2 - означает централизованное место. в вашем коде внутри кнопки1 вы определяете свой набор данных, который неизвестен кнопке2. Затем вы можете написать этот код внутри кнопки2. –

Смежные вопросы