ASP.Net/ADO.net Database/DataGrid Edit — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:30, 26 мая 2010
Содержание
Add asp:textbox to asp:datagrid edit mode
<source lang="csharp">
<%@ Page Language=VB Debug=true %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OLEDB" %> <script runat=server> Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
If Not IsPostBack Then BuildDataList End If
End Sub Sub DataList_Edit(sender As Object, e As DataListCommandEventArgs)
dlDepts.EditItemIndex = CInt(e.Item.ItemIndex) BuildDataList
End Sub Sub DataList_Update(sender As Object, e As DataListCommandEventArgs)
Dim TheID as String Dim TheFirstName as String Dim TheLastName as String TheID = CType(e.Item.FindControl("lblID"), Label).Text TheFirstName = CType(e.Item.FindControl("txtName"), TextBox).Text TheLastName = CType(e.Item.FindControl("txtEmail"), TextBox).Text Dim DBConn as OleDbConnection Dim DBUpdate As New OleDbCommand DBConn = New OleDbConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ & "DATA SOURCE=" _ & Server.MapPath("EmployeeDatabase.mdb;")) DBUpdate.rumandText = "Update Employee set " _ & "FirstName = "" & Replace(TheFirstName, """, """") & "", " _ & "LastName = "" & Replace(TheLastName, """, """") & "" " _ & "Where ID = " & TheID DBUpdate.Connection = DBConn DBUpdate.Connection.Open DBUpdate.ExecuteNonQuery() DBConn.Close dlDepts.EditItemIndex = -1 BuildDataList
End Sub Sub BuildDataList ()
Dim DBConn as OleDbConnection Dim DBCommand As OleDbDataAdapter Dim DSPageData as New DataSet DBConn = New OleDbConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ & "DATA SOURCE=" _ & Server.MapPath("EmployeeDatabase.mdb;")) DBCommand = New OleDbDataAdapter _ ("Select ID, FirstName, LastName " _ & "From Employee " _ & "Order By FirstName", DBConn) DBCommand.Fill(DSPageData, _ "Employee") dlDepts.DataSource = _ DSPageData.Tables("Employee").DefaultView dlDepts.DataBind()
End Sub
</SCRIPT>
<HTML>
<HEAD>
<TITLE>Editing Rows from a DataList Control</TITLE>
</HEAD>
<Body LEFTMARGIN="40">
<form runat="server">
<asp:Label
id="lblMessage" Font-Size="12pt" Font-Bold="True" Font-Name="Lucida Console" text="Below is a list of all the employee" runat="server"
/>
<asp:datalist
id="dlDepts" runat="server" oneditcommand="DataList_Edit" onupdatecommand="DataList_Update" gridlines="Both" backcolor="lightyellow" forecolor="darkred"
>
<itemtemplate> Department: <asp:label id="lblID" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "ID") %>" visible="False" /> <%# DataBinder.Eval(Container.DataItem, "FirstName") _ & " - " _ & DataBinder.Eval(Container.DataItem, "LastName") %> <asp:LinkButton id="butEdit" Text="Edit" CommandName="Edit" runat="server" /> </itemtemplate> <edititemtemplate> <asp:label id="lblID" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "ID") %>" visible="False" /> Name: <asp:textbox id="txtName" text="<%# DataBinder.Eval(Container.DataItem, "FirstName") %>" runat="server" />
Email: <asp:textbox id="txtEmail" text="<%# DataBinder.Eval(Container.DataItem, "LastName") %>" runat="server" />
<asp:LinkButton id="butUpdate" Text="Update" CommandName="Update" runat="server" /> </edititemtemplate>
</asp:datalist> </form> </BODY> </HTML>
</source>
<A href="http://www.nfex.ru/Code/ASPDownload/EmployeeDatabase.zip">EmployeeDatabase.zip( 10 k)</a>
asp:DataGrid with data edit
<source lang="csharp">
<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs) Dim strConnection As String Dim strSQL As String Dim objDataSet As New DataSet() Dim objConnection As OleDbConnection Dim objAdapter As OleDbDataAdapter strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " & _ "Data Source=C:\Northwind.mdb" strSQL = "SELECT FirstName, LastName FROM Employees;" objConnection = New OledbConnection(strConnection) objAdapter = New OledbDataAdapter(strSQL, objConnection) objAdapter.Fill(objDataSet, "Employees") dgNameList1.DataSource = objDataSet.Tables("Employees").DefaultView dgNameList1.DataBind() End Sub
</script> <html>
<body>
Original Data | Data with new Row | Data with edited Row | Data with deleted Row |
<asp:DataGrid id="dgNameList1" runat="server" /> | <asp:DataGrid id="dgNameList2" runat="server" /> | <asp:DataGrid id="dgNameList3" runat="server" /> | <asp:DataGrid id="dgNameList4" runat="server" /> |
</body>
</html>
</source>
Edit data in asp:datagrid
<source lang="csharp">
<%@ Page Language=VB Debug=true %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OLEDB" %> <script runat=server> Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
If Not IsPostBack Then BuildDataList End If
End Sub Sub Edit_Grid(sender As Object, e As DataGridCommandEventArgs)
dgEmps.EditItemIndex = e.Item.ItemIndex BuildDataList
End Sub Sub Update_Grid(ByVal Sender as Object, ByVal E as DataGridCommandEventArgs)
Dim TheID as String Dim LastName as String Dim FirstName as String TheID = E.Item.Cells(2).Text LastName = CType(e.Item.Cells(0).Controls(0), TextBox).Text FirstName = CType(e.Item.Cells(1).Controls(0), TextBox).Text Dim DBConn as OleDbConnection Dim DBUpdate As New OleDbCommand DBConn = New OleDbConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ & "DATA SOURCE=" _ & Server.MapPath("EmployeeDatabase.mdb;")) DBUpdate.rumandText = "Update Employee " _ & "Set LastName = "" & LastName &"", " _ & "FirstName = "" & FirstName & "" " _ & "Where ID = " & TheID DBUpdate.Connection = DBConn DBUpdate.Connection.Open DBUpdate.ExecuteNonQuery() DBConn.Close dgEmps.EditItemIndex = -1 BuildDataList
End Sub Sub CommandAdd_Click(Sender As Object, E As CommandEventArgs)
Dim DBConn as OleDbConnection Dim DBAdd As New OleDbCommand DBConn = New OleDbConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ & "DATA SOURCE=" _ & Server.MapPath("EmployeeDatabase.mdb;")) DBAdd.rumandText = "Insert Into Employee (LastName) " _ & "values ("new LastName")" DBAdd.Connection = DBConn DBAdd.Connection.Open DBAdd.ExecuteNonQuery() DBConn.Close dgEmps.EditItemIndex = 0 BuildDataList
End Sub Sub BuildDataList ()
Dim DBConn as OleDbConnection Dim DBCommand As OleDbDataAdapter Dim DSPageData as New DataSet DBConn = New OleDbConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ & "DATA SOURCE=" _ & Server.MapPath("EmployeeDatabase.mdb;")) DBCommand = New OleDbDataAdapter _ ("Select * From Employee " _ & "Order By LastName, FirstName", DBConn) DBCommand.Fill(DSPageData, _ "Employee") dgEmps.DataSource = _ DSPageData.Tables("Employee").DefaultView dgEmps.DataBind()
End Sub
</SCRIPT>
<HTML>
<HEAD>
<TITLE>Adding Rows to a DataGrid Control</TITLE>
</HEAD>
<Body LEFTMARGIN="40">
<form runat="server">
<asp:Label
id="lblMessage" runat="server"
/>
<asp:datagrid
id="dgEmps" runat="server" autogeneratecolumns="false" oneditcommand="Edit_Grid" onupdatecommand="Update_Grid" > <columns> <asp:boundcolumn HeaderText="Last Name" DataField="LastName" /> <asp:boundcolumn HeaderText="First Name" DataField="FirstName" /> <asp:boundcolumn datafield="ID" visible=False readonly=true /> <asp:editcommandcolumn edittext="Edit" updatetext="Update" itemstyle-wrap="false" headertext="Edit" headerStyle-wrap="false" /> </columns>
</asp:datagrid>
<asp:LinkButton
id="butAdd" text="Add" commandname="Add" oncommand="CommandAdd_Click" runat="server"
/> </form> </BODY> </HTML>
</source>
<A href="http://www.nfex.ru/Code/ASPDownload/EmployeeDatabase.zip">EmployeeDatabase.zip( 10 k)</a>
Use asp:datagrid to add, update
<source lang="csharp">
<%@ Page Language=VB Debug=true %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OLEDB" %> <script runat=server> Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
If Not IsPostBack Then BuildDataList End If
End Sub Sub DataList_Edit(sender As Object, e As DataListCommandEventArgs)
dlDepts.EditItemIndex = CInt(e.Item.ItemIndex) BuildDataList
End Sub Sub DataList_Update(sender As Object, e As DataListCommandEventArgs)
Dim TheID as String Dim TheName as String Dim TheEmail as String TheID = CType(e.Item.FindControl("lblID"), Label).Text TheName = CType(e.Item.FindControl("txtName"), TextBox).Text TheEmail = CType(e.Item.FindControl("txtEmail"), TextBox).Text Dim DBConn as OleDbConnection Dim DBUpdate As New OleDbCommand DBConn = New OleDbConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ & "DATA SOURCE=" _ & Server.MapPath("EmployeeDatabase.mdb;")) DBUpdate.rumandText = "Update Employee set " _ & "FirstName = "" & Replace(TheName, """, """") & "", " _ & "LastName = "" & Replace(TheEmail, """, """") & "" " _ & "Where ID = " & TheID DBUpdate.Connection = DBConn DBUpdate.Connection.Open DBUpdate.ExecuteNonQuery() DBConn.Close dlDepts.EditItemIndex = -1 BuildDataList
End Sub Sub CommandAdd_Click(Sender As Object, E As CommandEventArgs)
Dim DBConn as OleDbConnection Dim DBAdd As New OleDbCommand DBConn = New OleDbConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ & "DATA SOURCE=" _ & Server.MapPath("EmployeeDatabase.mdb;")) DBAdd.rumandText = "Insert Into Employee (FirstName) " _ & "values ("NewFirstName ")" DBAdd.Connection = DBConn DBAdd.Connection.Open DBAdd.ExecuteNonQuery() DBConn.Close dlDepts.EditItemIndex = 0 BuildDataList
End Sub Sub BuildDataList ()
Dim DBConn as OleDbConnection Dim DBCommand As OleDbDataAdapter Dim DSPageData as New DataSet DBConn = New OleDbConnection( _ "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ & "DATA SOURCE=" _ & Server.MapPath("EmployeeDatabase.mdb;")) DBCommand = New OleDbDataAdapter _ ("Select ID, FirstName, LastName " _ & "From Employee " _ & "Order By LastName", DBConn) DBCommand.Fill(DSPageData, _ "Employee") dlDepts.DataSource = _ DSPageData.Tables("Employee").DefaultView dlDepts.DataBind()
End Sub
</SCRIPT>
<HTML>
<HEAD>
<TITLE>Adding Rows from a DataList Control</TITLE>
</HEAD>
<Body LEFTMARGIN="40">
<form runat="server">
<asp:Label
id="lblMessage" Font-Size="12pt" Font-Bold="True" Font-Name="Lucida Console" text="Below is a list of all employees" runat="server"
/>
<asp:datalist
id="dlDepts" runat="server" oneditcommand="DataList_Edit" onupdatecommand="DataList_Update" gridlines="Both" backcolor="lightyellow" forecolor="darkred"
>
<itemtemplate> Department: <asp:label id="lblID" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "ID") %>" visible="False" /> <%# DataBinder.Eval(Container.DataItem, "FirstName") _ & " - " _ & DataBinder.Eval(Container.DataItem, "LastName") %> <asp:LinkButton id="butEdit" Text="Edit" CommandName="Edit" runat="server" /> </itemtemplate> <edititemtemplate> <asp:label id="lblID" runat="server" text="<%# DataBinder.Eval(Container.DataItem, "ID") %>" visible="False" /> Name: <asp:textbox id="txtName" text="<%# DataBinder.Eval(Container.DataItem, "FirstName") %>" runat="server" />
Email: <asp:textbox id="txtEmail" text="<%# DataBinder.Eval(Container.DataItem, "LastName") %>" runat="server" />
<asp:LinkButton id="butUpdate" Text="Update" CommandName="Update" runat="server" /> </edititemtemplate>
</asp:datalist>
<asp:LinkButton
id="butAdd" text="Add" commandname="Add" oncommand="CommandAdd_Click" runat="server"
/> </form> </BODY> </HTML>
</source>
<A href="http://www.nfex.ru/Code/ASPDownload/EmployeeDatabase.zip">EmployeeDatabase.zip( 10 k)</a>