ASP.NET Tutorial/ADO.net Database/MultipleActiveResultSets

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

MARS feature on the Employees table of the Northwind database

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" 
    Inherits="Default"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>MARS</title>
</head>
<body>
    <div id="pageContent">
        <form id="form1" runat="server">
            <asp:Button ID="Button1" runat="server" Text="Go" OnClick="Button1_Click" />
            <hr />
            <asp:DataGrid ID="grid" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" >
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <EditItemStyle BackColor="#2461BF" />
                <SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <AlternatingItemStyle BackColor="White" />
                <ItemStyle BackColor="#EFF3FB" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            </asp:DataGrid>
        </form>
    </div>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default : System.Web.UI.Page
{
    protected void Button1_Click(object sender, EventArgs e)
    {
        string connString = "MultipleActiveResultSets=true;SERVER=(local)\\SQLEXPRESS;ATTACHDBFILENAME=|DataDirectory|northwind.mdf;INTEGRATED SECURITY=sspi;USER INSTANCE=false;";
        using (SqlConnection conn = new SqlConnection(connString))
        {
            SqlCommand cmd1 = new SqlCommand("SELECT employeeid, firstname, lastname FROM employees", conn);
            cmd1.Connection.Open();
            SqlDataReader reader = cmd1.ExecuteReader();
      while (reader.Read())
      {
        string firstNameReverted = reader["firstname"].ToString();
        char[] buf = firstNameReverted.ToCharArray();
        Array.Reverse(buf);
        firstNameReverted = new string(buf);
        int id = (int)reader["employeeid"];
        SqlCommand cmd2 = new SqlCommand("UPDATE employees SET firstname=@newFirstName WHERE employeeid=@empID", conn);
        cmd2.Parameters.AddWithValue("@newFirstName", firstNameReverted);
        cmd2.Parameters.AddWithValue("empID", id);
        cmd2.ExecuteNonQuery();
      }
      reader.Close();
      grid.DataSource = cmd1.ExecuteReader(); 
            grid.DataBind();
            cmd1.Connection.Close();
        }
    }
}