2013-04-20 5 views
6

Tôi chỉ biết làm thế nào để cư GridView với asp:SqlDataSource
Nhưng tôi có một cột TemplateField trong tôi gridview, khi tôi cần sửa đổi SQL của tôi cho nội dung lưới alter, tôi đã làm mất TemplateField của tôi, vì vậy tôi nghĩ rằng học cư của tôi gridview với C#
Ai đó có thể dạy tôi hoặc cho tôi một số hướng dẫn?Làm thế nào để cư trú GridView với mysql?

+4

Câu hỏi của bạn không rõ ràng, bạn có thể đăng mã mẫu và những gì bạn đã thử không? –

Trả lời

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 dành cho tất cả mọi người! Tất cả những gì bạn đã giúp tôi! chủ yếu là Chetan! Đây có phải là tôi cần – Lai32290

1

A template field trong gridview là trường chứa một trong các giá trị bạn đã chọn từ cơ sở dữ liệu trong nguồn dữ liệu của mình.

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

Có mẫu cho mục cũng như chỉnh sửa mục.
Mẫu mục được hiển thị khi chế độ xem lưới không ở chế độ chỉnh sửa.
Và chỉnh sửa mẫu mục được hiển thị khi nó ở chế độ chỉnh sửa.

Xem chi tiết: - http://msdn.microsoft.com/en-us/library/bb288031.aspx

3

tôi vừa tạo ra một trang cơ bản với một SqlDataSource mà làm tất cả mà bạn đang muốn làm.

Đây là những gì tôi đã làm. Kéo một SqlDataSource từ hộp công cụ lên trên trang của bạn trong dạng xem thiết kế. Nhấp vào Thẻ thông minh và Định cấu hình nguồn dữ liệu. Nhấp vào Kết nối mới. Nếu bạn đang làm việc với một cài đặt cục bộ của MySql thì rất có thể Tên Máy chủ là localhost, tên người dùng là root, và mật khẩu là bất cứ điều gì bạn chỉ định khi bạn cài đặt và cấu hình máy chủ MySql trên máy tính của bạn. Chọn cơ sở dữ liệu của bạn. Luôn luôn là một ý tưởng tốt để nhấp vào nút Test Connection ở đây để đảm bảo nó hoạt động. Bây giờ, đi qua phần còn lại của trình hướng dẫn (Tiếp theo, Tiếp theo). Khi bạn vào trang "Configure the Select Statement", sau khi bạn đã chỉ định bảng nào bạn đang truy vấn và các trường nào, hãy chắc chắn rằng bạn bấm vào nút nâng cao ở bên phải và nhấp vào các phát biểu Chèn, Cập nhật và Xóa. Bây giờ kết thúc trình hướng dẫn.

Tại thời điểm này, bạn cần chuyển đến chế độ xem nguồn. Đối với tôi, các câu lệnh được tạo ra không đúng cú pháp MySql, vì vậy bạn phải sửa chúng. Dễ nhất là tìm kiếm/thay thế trong chế độ xem nguồn và thay thế tất cả các chữ "[" và "]" bằng "` ".. Hãy nhớ rằng đó không phải là dấu nháy đơn. Đó là nhân vật trông tương tự khác (tôi không biết bạn gọi nó là gì) ở bên trái của bạn 1 trên hàng số trên cùng của bàn phím của bạn. Bạn cũng sẽ cần phải thêm tên trường thực tế sau dấu "?" Trong câu lệnh chèn, cập nhật và xóa để các tham số hoạt động chính xác. Ok, bây giờ quay lại Chế độ xem thiết kế, kéo điều khiển GridView vào trang của bạn, trong thẻ thông minh cho GridView, chọn Chọn nguồn dữ liệu và chọn nguồn dữ liệu trên trang của bạn mà bạn vừa tạo (có thể được gọi là SqlDataSource1). trừ khi bạn thay đổi tên khi bạn tạo nó). Nhấn lược đồ làm mới. Nếu nó hoạt động, nó sẽ có thể cung cấp cho bạn một số hộp xác nhận, nhưng sau đó, nó sẽ làm mới GridView của bạn và hiển thị các cột trong nguồn dữ liệu của bạn. Nhấp vào thẻ thông minh của bạn trong GridView của bạn một lần nữa và nhấp vào hộp kiểm bên cạnh Bật phân trang, sắp xếp, chỉnh sửa, xóa (bất cứ điều gì bạn muốn). Bây giờ hãy lưu trang và chạy nó. Bạn sẽ thấy một GridView với khả năng làm tất cả những điều đó.

Để chèn, bạn cần một điều khiển khác. Kiểm soát DetailsView có lẽ là đặt cược tốt nhất của bạn. Các bước gần giống với những gì bạn đã làm với GridView.

Dưới đây là mã nguồn tôi có sau khi làm tất cả những gì:

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

Tất cả điều này giả định bạn làm theo các bước trên mà sẽ tạo ra một chuỗi kết nối trong file web.config cho bạn. Vì vậy, bạn sẽ không thể sao chép mã này đúng nguyên văn và làm cho nó hoạt động. Không phải không có chuỗi kết nối trong web.config của bạn anyway.

Có rất nhiều điều bạn có thể làm. Rất nhiều bài viết và video tuyệt vời trên trang web này về việc sử dụng các điều khiển dữ liệu khác nhau. Ngoài ra còn có một số điều cần xem xét khi triển khai để sản xuất. Trong trường hợp nó giúp, tôi sử dụng GoDaddy và đã viết một bài báo vào tháng trước về việc thiết lập ASP.NET Membership bằng cách sử dụng MySql và lưu trữ trên GoDaddy. Tôi nghĩ rằng phần đầu tiên của bài viết đó có thể cung cấp cho bạn một số gợi ý hữu ích bổ sung tùy thuộc vào những gì bạn đang cố gắng làm.

bài viết Đó là ở đây:

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

séc dis liên kết u chắn có thể giải quyết vấn đề ........

http://aspnet.4guysfromrolla.com/articles/021203-1.aspx [với ra phân trang]

http://www.aspnetdatagrid.com/Ex/RowInUpDl.aspx [với phân trang]

Hy vọng điều này sẽ hữu ích.