2013-04-20 10 views
6

prostu wiem jak wypełnić GridView z asp:SqlDataSource
Ale mam kolumnę TemplateField w moim gridview, kiedy muszę zmodyfikować moje SQL dla alter zawartości siatki, tracę TemplateField, więc myślę, że uczyć się wypełnić mój gridview z C#
Ktoś może mnie nauczyć lub dać mi samouczek?Jak wypełnić gridview za pomocą mysql?

+4

Twoje pytanie nie jest jasne, czy możesz przesłać próbny kod i co próbowałeś? –

Odpowiedz

9
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using MySql.Data.Common; 
using MySql.Data.MySqlClient; 
using System.Data.SqlClient; 
using System.Windows.Forms; 
using System.Data; 

public partial class viewAdmin : System.Web.UI.Page 
{ 
    String MyConString = "SERVER=localhost;" + 
       "DATABASE=databasename;" + 
       "UID=root;" + 
       "PASSWORD=;"; 
protected void Page_Load(object sender, EventArgs e) 
{ 

     MySqlConnection conn = new MySqlConnection(MyConString); 
     MySqlCommand cmd = new MySqlCommand("SELECT * FROM tablename;", conn); 
     conn.Open(); 
     DataTable dataTable = new DataTable(); 
     MySqlDataAdapter da = new MySqlDataAdapter(cmd); 

     da.Fill(dataTable); 


     GridVIew.DataSource = dataTable; 
     GridVIew.DataBind(); 
} 

} 
+0

Tks dla wszystkich! Wszystko, co mi pomogłeś! głównie Chetan! Czy to jest potrzebne? – Lai32290

1

A template field w gridview to pole zawierające jedną z wartości wybranych z bazy danych w źródle danych.

<asp:TemplateField HeaderText="FirstName" SortExpression="FirstName"> 
    <EditItemTemplate> 
     <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("FirstName") %>'> 
     </asp:TextBox> 
    </EditItemTemplate> 
    <ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<%# Bind("FirstName") %>'> 
     </asp:Label> 
     <asp:Label ID="Label2" runat="server" Text='<%# Bind("LastName") %>'> 
     </asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

Tam szablon elementu i elementu do edycji.
Szablon pozycji jest wyświetlany, gdy widok siatki nie znajduje się w trybie edycji.
Szablon edycji elementu jest wyświetlany, gdy jest w trybie edycji.

Więcej szczegółów: - http://msdn.microsoft.com/en-us/library/bb288031.aspx

3

Właśnie stworzył prostą stronę z SqlDataSource że robi to wszystko, co chce zrobić.

Oto co zrobiłem. Przeciągnij SqlDataSource z Przybornika na swoją stronę w widoku Projekt. Kliknij Smart Tag i skonfiguruj źródło danych. Kliknij Nowe połączenie. Jeśli pracujesz z lokalną instalacją MySql, najprawdopodobniej nazwa serwera to localhost, nazwa użytkownika to root, a hasło jest takie, jakie określiłeś podczas instalacji i konfiguracji serwera MySql na twoim komputerze. Wybierz swoją bazę danych. Zawsze dobrze jest kliknąć przycisk Testuj połączenie, aby upewnić się, że działa. Teraz przejdź przez resztę kreatora (Next, Next). Po przejściu do strony "Konfigurowanie instrukcji Select", po określeniu, która tabela dotyczy kwerend i które pola, upewnij się, że kliknąłeś przycisk zaawansowany po prawej stronie i kliknąłeś instrukcje Generuj Wstaw, Aktualizuj i Usuń. Teraz zakończ kreatora.

W tym momencie musisz przejść do widoku źródła. Dla mnie generowane instrukcje nie są poprawną składnią MySql, więc musisz je naprawić. Najłatwiej jest zrobić find/replace w widoku źródłowym i zastąpić wszystkie "[" "i"] "" z "` ". Pamiętaj, że to nie jest apostrof. Jest to druga, podobnie wyglądająca postać (nie wiem, jak ją nazywasz) po lewej stronie numeru 1 w górnym rzędzie klawiatury. Będziesz także musiał dodać rzeczywiste nazwy pól po "?" W instrukcjach wstawiania, aktualizacji i usuwania, aby parametry działały poprawnie.

OK, teraz wróć do swojego widoku projektu, przeciągnij kontrolkę GridView na swoją stronę, w tagu Smart dla GridView, wybierz Wybierz źródło danych i wybierz źródło danych na swojej stronie, które właśnie utworzyłeś (prawdopodobnie nazywane SqlDataSource1 chyba że zmieniłeś nazwę podczas jej tworzenia). Hit odśwież schemat. Jeśli to działa, może dać ci pewne pole z potwierdzeniem, ale potem powinno odświeżyć twój GridView i pokazać kolumny w twoim źródle danych. Kliknij swój tag inteligentny ponownie w GridView i kliknij pola wyboru obok opcji Włącz stronicowanie, sortowanie, edytowanie, usuwanie (cokolwiek chcesz). Teraz zapisz stronę i uruchom ją. Powinieneś zobaczyć GridView z możliwością zrobienia tych wszystkich rzeczy.

Do wkładania potrzebna jest inna kontrola. Kontrola DetailsView jest prawdopodobnie najlepszym wyborem. Kroki są prawie identyczne jak w GridView.

Oto kod źródłowy mam po robią wszystko, że:

<%@ Page Language="C#" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<script runat="server"> 
</script> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title>Untitled Page</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:testConnectionString2 %>" 
    DeleteCommand="DELETE FROM `test` WHERE `TestID` = ?TestID" 
    InsertCommand="INSERT INTO `test` (`TestID`, `FirstName`, `LastName`) VALUES (?TestID, ?FirstName, ?LastName)" 
    ProviderName="<%$ ConnectionStrings:testConnectionString2.ProviderName %>" 
    SelectCommand="SELECT * FROM `test`" 
    UpdateCommand="UPDATE `test` SET `FirstName` = ?FirstName, `LastName` = ?LastName WHERE `TestID` = ?TestID"> 
<DeleteParameters> 
    <asp:Parameter Name="TestID" Type="Int32" /> 
</DeleteParameters> 
<UpdateParameters> 
    <asp:Parameter Name="FirstName" Type="String" /> 
    <asp:Parameter Name="LastName" Type="String" /> 
    <asp:Parameter Name="TestID" Type="Int32" /> 
</UpdateParameters> 
<InsertParameters> 
    <asp:Parameter Name="TestID" Type="Int32" /> 
    <asp:Parameter Name="FirstName" Type="String" /> 
    <asp:Parameter Name="LastName" Type="String" /> 
</InsertParameters> 
</asp:SqlDataSource> 
</div> 
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
     AllowSorting="True" AutoGenerateColumns="False" 
     DataKeyNames="TestID" DataSourceID="SqlDataSource1"> 
    <Columns> 
     <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> 
     <asp:BoundField DataField="TestID" HeaderText="TestID" ReadOnly="True" SortExpression="TestID" /> 
     <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" /> 
     <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" /> 
    </Columns> 
    </asp:GridView> 

    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="TestID" 
     DataSourceID="SqlDataSource1" Height="50px" Width="125px"> 
    <Fields> 
     <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" /> 
     <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" /> 
     <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" /> 
    </Fields> 
    </asp:DetailsView> 

</form> 
</body> 
</html> 

Wszystko to zakłada, następnie powyższe czynności, które tworzą ciąg połączenia w pliku web.config dla Ciebie. Więc nie będziesz w stanie skopiować tego kodu verbatum i sprawić, żeby działało. Nie bez ciągu połączenia w twoim web.config mimo to.

Jest wiele więcej możliwości. Wiele świetnych artykułów i filmów na tej stronie o korzystaniu z różnych elementów sterujących danymi. Podczas wdrażania do produkcji należy rozważyć pewne kwestie. Jeśli to pomoże, używam GoDaddy i napisałem artykuł w zeszłym miesiącu o ustawianiu członkostwa ASP.NET za pomocą MySql i hostingu na GoDaddy. Myślę, że pierwsza część tego artykułu może dać ci dodatkowe pomocne wskazówki w zależności od tego, co ostatecznie próbujesz zrobić.

Ten artykuł jest tutaj:

http://www.marvinpalmer.com/MarvinPalmer/post/Implement-NET-Membership-and-Roles-using-MySql-Connector-523-on-GoDaddy.aspx

czek dis związek u można zdecydowanie rozwiązać problem ........

http://aspnet.4guysfromrolla.com/articles/021203-1.aspx [z odchodzący stronicowania]

http://www.aspnetdatagrid.com/Ex/RowInUpDl.aspx [z przywołaniem]

Mam nadzieję, że to pomoże.

Powiązane problemy