using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
using System.Data.SqlClient;namespace WebApplicationCollect
{
/// <summary>
/// ManageInfo 的摘要说明。
/// </summary>
public class ManageInfo : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1; protected string con;
protected SqlConnection conn;
protected SqlCommand cmd;
protected SqlDataAdapter da;
protected DataSet ds;
protected SqlDataReader dr; private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
if (Session.Count == 0 || Session["Admin"] == null)
{
Response.Redirect("Login.aspx");
}
else
{
BindData();
}
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand);
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand);
this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void BindData()
{
con = ConfigurationSettings.AppSettings["SqlConnectionString"];
conn = new SqlConnection(con);
da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand("Sp_CollectInfo_SelectAll",conn);
ds = new DataSet();
da.Fill(ds);
conn.Open();
DataGrid1.DataSource = ds.Tables[0].DefaultView;
DataGrid1.DataBind();
conn.Close();
}
private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = -1;
BindData();
} private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = e.Item.ItemIndex;
BindData();
DropDownList mySort = (DropDownList)DataGrid1.Items[e.Item.ItemIndex].Cells[1].FindControl("ddlSort");
if (mySort != null)
{
con = ConfigurationSettings.AppSettings["SqlConnectionString"];
conn = new SqlConnection(con);
cmd = new SqlCommand("Sp_Sort_SelectAll",conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
mySort.DataSource = cmd.ExecuteReader();
mySort.DataTextField = "Sort";
mySort.DataValueField = "Sort";
mySort.DataBind();
conn.Close();
conn.Dispose();
}
} private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = e.Item.ItemIndex;
BindData();
} private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
con = ConfigurationSettings.AppSettings["SqlConnectionString"];
conn = new SqlConnection(con);
cmd = new SqlCommand("Sp_Sort_SelectAll",conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
((DropDownList) DataGrid1.Items[e.Item.ItemIndex].Cells[3].FindControl("ddlSort")).DataSource = cmd.ExecuteNonQuery();
((DropDownList) DataGrid1.Items[e.Item.ItemIndex].Cells[3].FindControl("ddlSort")).DataTextField = "Sort";
((DropDownList) DataGrid1.Items[e.Item.ItemIndex].Cells[3].FindControl("ddlSort")).DataValueField = "Sort";
((DropDownList) DataGrid1.Items[e.Item.ItemIndex].Cells[3].FindControl("ddlSort")).DataBind();
conn.Close();
conn.Dispose();
} private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
con = ConfigurationSettings.AppSettings["SqlConnectionString"];
conn = new SqlConnection(con);
da = new SqlDataAdapter();
da.UpdateCommand = new SqlCommand("Sp_CollectInfo_UpdateWhereNameLinkSort",conn);
da.UpdateCommand.CommandType = CommandType.StoredProcedure;

da.UpdateCommand.Parameters.Add("@ID",SqlDbType.Int).Value = DataGrid1.DataKeys[e.Item.ItemIndex]; SqlParameter pName = new SqlParameter("@Name",SqlDbType.VarChar,50);
pName.Value = DataGrid1.Items[e.Item.ItemIndex].Cells[1];
da.UpdateCommand.Parameters.Add(pName); SqlParameter pLink = new SqlParameter("@Link",SqlDbType.NVarChar,50);
pLink.Value = DataGrid1.Items[e.Item.ItemIndex].Cells[2];
da.UpdateCommand.Parameters.Add(pLink); SqlParameter pSort = new SqlParameter("@Sort",SqlDbType.VarChar,50);
pSort.Value = ((DropDownList)DataGrid1.Items[e.Item.ItemIndex].Cells[3].FindControl("ddlSort")).SelectedItem.Value;
da.UpdateCommand.Parameters.Add(pSort); conn.Open();
da.UpdateCommand.ExecuteNonQuery();
Response.Write("<script>alert('更新成功!')</script>");
DataGrid1.EditItemIndex = -1;
BindData();
conn.Close();
conn.Dispose();
}

}
}=========================================>
ALTER PROCEDURE Sp_CollectInfo_UpdateWhereNameLinkSort
@Name varchar(50),
@Link nvarchar(50),
@Sort varchar(50),
@ID int
AS
UPDATE CollectInfo
SET Name = @Name, Link = @Link, Sort = @Sort
WHERE (ID = @ID)
RETURN