none
Связать данные таблицы по технологии ASP.NET, используя элемент управления DataGridView. RRS feed

  • Вопрос

  • Всем доброго время суток. Нужно связать данные таблицы по технологии ASP.NET, используя элемент управления DataGridView. Вот HTML-код для представления данных:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DataBindingWeb._Default" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
     <title></title>
    </head>
    <body>
     <form id="form1" runat="server">
     <div>
     Database Results:
      <asp:GridView ID="GridView1" runat="server">
      </asp:GridView>
     </div>
     </form>
    </body>
    </html>
    
    

    Код обеспечивающий связывание:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;
    
    namespace DataBindingWeb
    {
     public partial class _Default : System.Web.UI.Page
     {
      private DataSet _dataSet;
    
      protected void Page_Load(object sender, EventArgs e)
      {
       _dataSet = CreateDataSet();
       GridView1.DataSource = _dataSet.Tables["Books"];
       GridView1.DataBind();
      }
    
      private DataSet CreateDataSet()
      {
       string connectionString = @"Data Source=DNAPC\SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=True;Pooling=False";
       using (SqlConnection conn = new SqlConnection(connectionString))
       {
        conn.Open();
        using (SqlCommand cmd = new SqlCommand("SELECT * FROM Books", conn))
        using (SqlDataAdapter adapter = new SqlDataAdapter())
        {
         adapter.TableMappings.Add("Table", "Books");
         adapter.SelectCommand = cmd;
         DataSet dataSet = new DataSet("Books");
         //put all the rows into the dataset
         adapter.Fill(dataSet);
         return dataSet;
        }
       }
      }
     }
    }
    

    Я  выбрал для создания проект типа  ASP.NET Web Application,  у  меня в проекте кроме файлов Default.aspx.cs и  About.aspx появились файлы Site.Master и  Global.asax.cs, хотя в проекте они мне нужны. Компиляция проходит без ошибок, но при выполнении программы загружается страница с ошибками:

    Server Error in '/' Application.
    Configuration Error
    Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

    Parser Error Message: Unrecognized attribute 'targetFrameworkMoniker'. Note that attribute names are case-sensitive.

    Source Error:

    Line 23:       during development.

    Line 24:     -->

    Line 25:   <compilation debug="true" targetFrameworkMoniker=".NETFramework,Version=v4.0">


    Line 26:    <assemblies>

    Line 27:     <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>


    Source File: C:\Users\Администратор\Documents\Visual Studio 2010\Projects\C#\DataBindingWeb\DataBindingWeb\web.config    Line: 25

    Version Information:  Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

    Не могу понять в чем ошибка, 2-ые сутки бьюсь.  За ранее огромное спасибо.
    18 февраля 2011 г. 11:32

Ответы

  • действительно, в приведенном конфигурационном файле есть закрывающий тэг </compilation> т.е д.б.

    <compilation debug="true" targetFramework="4.0" >
     <assemblies>
     <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
     <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     </assemblies
     </compilation> 


     д.б. Скорее всего Алексей Митев неудачно сделал cut&paste)

    • Помечено в качестве ответа Abolmasov Dmitry 20 февраля 2011 г. 15:05
    19 февраля 2011 г. 10:50
  • Очень странно: кто-то или что-то испортило файл конфигурации web.config. У меня в практике был один вирус, который выборочно портил xml-файлы, но маловероятно, что это Ваш случай.

    Строка 25 файла web.config должна выглядеть так:

    <compilation debug="true" targetFramework="4.0" />
    

    • Помечено в качестве ответа Abolmasov Dmitry 20 февраля 2011 г. 15:05
    18 февраля 2011 г. 15:38
  • Правильней наверное будет так:

    <compilation debug="true" targetFramework="4.0" >
    
    

    А то при:

    <compilation debug="true" targetFramework="4.0" />
    
    
    компилятор ругается на /.

    • Помечено в качестве ответа Наум Фишман 22 февраля 2011 г. 9:29
    19 февраля 2011 г. 10:35

Все ответы

  • Очень странно: кто-то или что-то испортило файл конфигурации web.config. У меня в практике был один вирус, который выборочно портил xml-файлы, но маловероятно, что это Ваш случай.

    Строка 25 файла web.config должна выглядеть так:

    <compilation debug="true" targetFramework="4.0" />
    

    • Помечено в качестве ответа Abolmasov Dmitry 20 февраля 2011 г. 15:05
    18 февраля 2011 г. 15:38
  • Эту строку нужно поставить вместо

    <compilation debug="true" targetFrameworkMoniker=".NETFramework,Version=v4.0">
    

    18 февраля 2011 г. 19:18
  • Я поставил как вы советуете компилятор выдал предупреждение:

    Warning    1    The element 'system.web' cannot contain text. List of possible elements expected: 'anonymousIdentification, authentication, authorization, browserCaps, clientTarget, compilation, customErrors, deployment, deviceFilters, fullTrustAssemblies, globalization, healthMonitoring, hostingEnvironment, httpCookies, httpHandlers, httpModules, httpRuntime, identity, machineKey, membership, mobileControls, pages, partialTrustVisibleAssemblies, processModel, profile, roleManager, securityPolicy, sessionPageState, sessionState, siteMap, trace, trust, urlMappings, webControls, webParts, webServices, xhtmlConformance, caching'.    C:\Users\Администратор\Documents\Visual Studio 2010\Projects\C    25    5   
    Warning    2    The 'targetFrameworkMoniker' attribute is not allowed.    C:\Users\Администратор\Documents\Visual Studio 2010\Projects\C    25    33   
    Warning    3    The element 'compilation' has invalid child element 'compilation'. List of possible elements expected: 'assemblies, buildProviders, codeSubDirectories, expressionBuilders, folderLevelBuildProviders'.    C:\Users\Администратор\Documents\Visual Studio 2010\Projects\C    26    8   
     В чем ошибка??? Посмотрите пожалуйста, если вам не трудно, вот мой web.config файл:

    <?xml version="1.0"?>
    <configuration>
     <configSections>
      <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
       <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
         <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
         <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
         <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
         <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
        </sectionGroup>
       </sectionGroup>
      </sectionGroup>
     </configSections>
     <appSettings/>
     <connectionStrings/>
     <system.web>
      <!-- 
          Set compilation debug="true" to insert debugging 
          symbols into the compiled page. Because this 
          affects performance, set this value to true only 
          during development.
        -->
      //<compilation debug="true" targetFrameworkMoniker=".NETFramework,Version=v4.0">
       <compilation debug="true" targetFramework="4.0" />
       <assemblies>
        <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
       </assemblies>
      </compilation>
      <!--
          The <authentication> section enables configuration 
          of the security authentication mode used by 
          ASP.NET to identify an incoming user. 
        -->
      <authentication mode="Windows"/>
      <!--
          The <customErrors> section enables configuration 
          of what to do if/when an unhandled error occurs 
          during the execution of a request. Specifically, 
          it enables developers to configure html error pages 
          to be displayed in place of a error stack trace.
    
        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
          <error statusCode="403" redirect="NoAccess.htm" />
          <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
      <pages>
       <controls>
        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
       </controls>
      </pages>
      <httpHandlers>
       <remove verb="*" path="*.asmx"/>
       <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
       <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
       <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
      </httpHandlers>
      <httpModules>
       <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </httpModules>
     </system.web>
     <system.codedom>
      <compilers>
       <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <providerOption name="CompilerVersion" value="v4.0"/>
        <providerOption name="WarnAsError" value="false"/>
       </compiler>
      </compilers>
     </system.codedom>
     <!-- 
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services 7.0. It is not necessary for previous version of IIS.
      -->
     <system.webServer>
      <validation validateIntegratedModeConfiguration="false"/>
      <modules>
       <remove name="ScriptModule"/>
       <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </modules>
      <handlers>
       <remove name="WebServiceHandlerFactory-Integrated"/>
       <remove name="ScriptHandlerFactory"/>
       <remove name="ScriptHandlerFactoryAppServices"/>
       <remove name="ScriptResource"/>
       <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
       <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
       <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </handlers>
     </system.webServer>
    </configuration>
    
    
    За ранее огромное спасибо!!!!!!

    18 февраля 2011 г. 19:54
  • Комментарии в файле конфигурации web.config выделяются так же, как и в ASPX-разметке в ASP.NET:

    <!--
       Здесь текст комментария
     -->
    
    Комментарии в виде двойного слэша (//) здесь недопустимы. Нужно либо удалить строку

     //<compilation debug="true" targetFrameworkMoniker=".NETFramework,Version=v4.0">
    
    либо правильно ее закомментировать.

    18 февраля 2011 г. 21:22
  • Я удал строку:
    //<compilation debug="true" targetFrameworkMoniker=".NETFramework,Version=v4.0">
    
    

    В место нее оставил:

    <compilation debug="true" targetFramework="4.0" />
    
    
    При выполнения опять выскакивает страница с теми же самыми ошибками, что опять не правильно????
    18 февраля 2011 г. 22:18
  • Правильней наверное будет так:

    <compilation debug="true" targetFramework="4.0" >
    
    

    А то при:

    <compilation debug="true" targetFramework="4.0" />
    
    
    компилятор ругается на /.

    • Помечено в качестве ответа Наум Фишман 22 февраля 2011 г. 9:29
    19 февраля 2011 г. 10:35
  • действительно, в приведенном конфигурационном файле есть закрывающий тэг </compilation> т.е д.б.

    <compilation debug="true" targetFramework="4.0" >
     <assemblies>
     <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
     <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     </assemblies
     </compilation> 


     д.б. Скорее всего Алексей Митев неудачно сделал cut&paste)

    • Помечено в качестве ответа Abolmasov Dmitry 20 февраля 2011 г. 15:05
    19 февраля 2011 г. 10:50
  • Пожалуйста, не забывайте отмечать ответы.


    Для связи [mail]
    20 февраля 2011 г. 15:06