2013-04-20 20 views
6

ich nur wissen, wie gridview zu bevölkern mit asp:SqlDataSource
Aber ich habe eine Spalte von TemplateField in meinem gridview, wenn ich meine SQL für alten Grid Inhalt benötigen ändern, verliere ich meine TemplateField, also denke ich lerne meine gridview mit C#
bevölkere Jemand kann mir beibringen oder mir ein Tutorial geben?Wie kann ich gridview mit mysql füllen?

+4

Ihre Frage ist nicht klar, können Sie Beispielcode und was Sie ausprobiert? –

Antwort

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 für alle! Alles, was du mir geholfen hast! hauptsächlich Chetan! Ist das nötig? – Lai32290

1

Ein template field in gridview ist ein Feld, das einen der Werte enthält, die Sie aus der Datenbank in Ihrer Datenquelle ausgewählt haben.

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

Dort Vorlage für Artikel sowie Artikel bearbeiten.
Die Artikelvorlage wird angezeigt, wenn sich die Gridview nicht im Bearbeitungsmodus befindet.
Die Bearbeitungselementvorlage wird angezeigt, wenn sie sich im Bearbeitungsmodus befindet.

Weitere Details: - http://msdn.microsoft.com/en-us/library/bb288031.aspx

3

Ich habe nur eine einfache Seite mit einem SqlDataSource, die alle tun, die Sie tun wünschen.

Hier ist was ich getan habe. Ziehen Sie eine SqlDataSource aus der Toolbox auf Ihre Seite in der Entwurfsansicht. Klicken Sie auf das Smart Tag und konfigurieren Sie die Datenquelle. Klicken Sie auf Neue Verbindung. Wenn Sie mit einer lokalen Installation von MySql arbeiten, ist der Servername wahrscheinlich localhost, der Benutzername ist root und das Passwort ist das, was Sie bei der Installation und Konfiguration des MySql-Servers auf Ihrem Computer angegeben haben. Wählen Sie Ihre Datenbank aus. Es ist immer eine gute Idee, auf die Schaltfläche Verbindung testen zu klicken, um sicherzustellen, dass sie funktioniert. Gehen Sie nun durch den Rest des Assistenten (Weiter, Weiter). Wenn Sie auf die Seite "Select-Anweisung konfigurieren" gelangen, nachdem Sie angegeben haben, welche Tabelle Sie abfragen und welche Felder, stellen Sie sicher, dass Sie auf die erweiterte Schaltfläche auf der rechten Seite klicken und auf die Anweisungen zum Erstellen, Aktualisieren und Löschen klicken. Beenden Sie nun den Assistenten.

An diesem Punkt müssen Sie zur Quellansicht gehen. Für mich sind die Anweisungen, die generiert werden, nicht korrekt MySql-Syntax, also müssen Sie sie beheben. Am einfachsten ist es, in der Quellansicht eine Suche/Ersetzung durchzuführen und alle "[" s und "]" durch "` "zu ersetzen. Denken Sie daran, das ist kein Apostroph. Es ist der andere ähnlich aussehende Charakter (ich weiß nicht, wie Sie es nennen) links von Ihrer 1 in der oberen Reihe Ihrer Tastatur. Sie müssen außerdem die tatsächlichen Feldnamen nach den "?" In den Einfüge-, Aktualisierungs- und Löschanweisungen hinzufügen, damit die Parameter ordnungsgemäß funktionieren.

Ok, gehen Sie jetzt zurück zu Ihrer Entwurfsansicht, ziehen Sie ein GridView-Steuerelement auf Ihre Seite, wählen Sie im Smarttag für die GridView die Option Datenquelle auswählen und die Datenquelle auf Ihrer soeben erstellten Seite aus (wahrscheinlich SqlDataSource1 genannt) es sei denn, Sie haben den Namen bei der Erstellung geändert. Treffer aktualisieren Schema. Wenn es funktioniert, gibt es möglicherweise ein Bestätigungsfeld, aber danach sollte es Ihre GridView aktualisieren und die Spalten in Ihrer Datenquelle anzeigen. Klicken Sie erneut auf Ihr Smarttag in Ihrer GridView und aktivieren Sie die Kontrollkästchen neben Paging aktivieren, Sortieren, Bearbeiten, Löschen (was immer Sie möchten). Speichern Sie jetzt die Seite und führen Sie sie aus. Sie sollten eine GridView mit der Möglichkeit sehen, all diese Dinge zu tun.

Zum Einfügen benötigen Sie ein anderes Steuerelement. Ein DetailsView-Steuerelement ist wahrscheinlich die beste Wahl. Die Schritte sind fast identisch mit denen, die Sie mit GridView gemacht haben.

Hier ist der Quellcode Ich habe nach allem, was zu tun:

<%@ 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> 

All dies vorausgesetzt, dass Sie die Schritte gefolgt, über dem für Sie eine Verbindungszeichenfolge in der web.config-Datei erstellen wird. Sie werden also nicht in der Lage sein, dieses Code-Verbatum zu kopieren und es funktionieren zu lassen. Nicht ohne die Verbindungszeichenfolge in Ihrer web.config trotzdem.

Sie können noch viel mehr tun. Viele großartige Artikel und Videos auf dieser Seite über die Verwendung der verschiedenen Datensteuerelemente. Bei der Bereitstellung in der Produktion müssen auch einige Dinge berücksichtigt werden. Falls es hilft, benutze ich GoDaddy und schrieb letzten Monat einen Artikel über die Einrichtung von ASP.NET-Mitgliedschaft mit MySql und Hosting auf GoDaddy. Ich denke, der erste Teil dieses Artikels könnte Ihnen zusätzliche hilfreiche Hinweise geben, abhängig davon, was Sie letztlich versuchen zu tun.

Dieser Artikel ist hier:

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

Check dis Link u das Problem definitiv lösen kann ........

http://aspnet.4guysfromrolla.com/articles/021203-1.aspx [mit out Paging]

http://www.aspnetdatagrid.com/Ex/RowInUpDl.aspx [mit Paging]

Hoffe das hilft.

Verwandte Themen