您的位置:首页 > 数据库

第六章 用户权限管理(七) -- C#读写数据库Image字段

2012-09-19 09:17 323 查看
6.6 角色用户管理设计与实现

6.6.4 员工信息管理

Employees.aspx.cs文件代码:




图6.23 DataGrid事件处理函数

using System.IO;

using System.Configuration;

using System.Text.RegularExpressions;

using DataAccess;
......
namespace workflow.admin

{

public class EmployeesManagement : System.Web.UI.Page

{

protected System.Web.UI.WebControls.DataGrid DataGrid1;

protected System.Web.UI.WebControls.TextBox TextBox1;

protected System.Web.UI.WebControls.Label Label1;

protected System.Web.UI.WebControls.Button Button1;

protected System.Web.UI.WebControls.TextBox TextBox2;

protected System.Web.UI.WebControls.TextBox TextBox3;

protected System.Web.UI.WebControls.TextBox TextBox4;

protected System.Web.UI.WebControls.TextBox TextBox5;

protected System.Web.UI.WebControls.TextBox TextBox6;

protected System.Web.UI.WebControls.TextBox TextBox7;

protected System.Web.UI.HtmlControls.HtmlInputFile PersonImage;

protected System.Web.UI.WebControls.TextBox TextBox8;

protected System.Web.UI.WebControls.DropDownList DropDownList1;

protected System.Web.UI.HtmlControls.HtmlGenericControl Message;

protected System.Web.UI.WebControls.RadioButton RadioButton1;

protected System.Web.UI.WebControls.RadioButton RadioButton2;

protected System.Web.UI.WebControls.Label Label2;

protected System.Web.UI.WebControls.Label Label3;

protected System.Web.UI.WebControls.Button Button2;

protected System.Web.UI.WebControls.TextBox TextBox9;

protected System.Web.UI.WebControls.Button Button3;

protected System.Web.UI.HtmlControls.HtmlGenericControl EditMessage;

private void Page_Load(object sender, System.EventArgs e)

{

if(! IsPostBack)

{

//验证用户是否登录

if(Session["userid"] == null)

Response.Redirect("./Message.aspx");
ViewState["datagridsource"]="";

ViewState["listsource"]="";

string strSql="select Group_Name,Group_ID from organization";

DataSet ds=new Base().SQLExeDataSet(strSql);

if(ds !=null)

{

DataRow myDataRow=ds.Tables[0].NewRow();

ds.Tables[0].Rows.InsertAt(myDataRow,0);

ViewState["listsource"]=ds;

}

BindOrganizationList();

BindGrid();

}

primarystatus();//置空编辑控件

}
void primarystatus()

{

Message.InnerHtml="";

EditMessage.InnerText="";

Label1.Text="";

Label2.Text="";

Label3.Text="";

Button1.Visible=true;

Button2.Visible=false;

Button3.Visible=false;
}
//设置DataGrid图片按钮的url地址
protected string FormatURL(string arg)

{

return "DisplayImage.aspx?id="+arg;

}
void BindGrid()

{

string strSql="select EmployeeID,GroupID,EmployeeName,Sex,Business,
CellPhone,HomePhone,Address,Notes,orgname=(select Group_Name from
organization where Group_ID=GroupID),shiredate=CONVERT(varchar(10),
HireDate, 120),CONVERT(varchar(10), BirthDate, 120) as sbirthdate from
Employees order by GroupID asc";

DataSet ds=new Base().SQLExeDataSet(strSql);

if(ds !=null)

{

DataGrid1.DataSource=ds;

DataGrid1.DataBind();

ViewState["datagridsource"]=ds;

}

}
void BindOrganizationList()

{

if(ViewState["listsource"].ToString() !="")
{

DropDownList1.DataSource=(DataSet)ViewState["listsource"];

DropDownList1.DataBind();
}

}
//添加按钮

private void Button1_Click(object sender, System.EventArgs e)

{

if(TextBox1.Text.Trim()=="")

{

Label1.Text="姓名不能为空";

return;

}
string strSql="INSERT INTO Employees(EmployeeName, Business, GroupID, BirthDate,
HireDate, Address, HomePhone,CellPhone, Photo, PhotoImageType, Notes,Sex) "

+" values(@EmployeeName,@Business,@GroupID,@BirthDate,@HireDate,@Address,
@HomePhone,@CellPhone,@Photo,@PhotoImageType,@Notes,@Sex)";

SqlCommand mycommand=new SqlCommand(strSql);

//设置SQL参数

setprocargument(mycommand);
Base basecode=new Base();

if(basecode.SQLExeNonQuery_proc(mycommand))

{

BindGrid();
//重置添加(编辑)信息控件为空

TextBox1.Text="";

TextBox2.Text="";

TextBox3.Text="";

TextBox4.Text="";

TextBox5.Text="";

TextBox6.Text="";

TextBox7.Text="";

TextBox8.Text="";

}

else

{

EditMessage.InnerHtml="Insert Failed. Error Details are: "
+ basecode.BaseSqlErrDes;

EditMessage.Style["color"]="red";

}

}
//为删除按钮设置客户端提示

private void Datagrid_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)

{

if(e.Item.ItemType == ListItemType.Item ||e.Item.ItemType
== ListItemType.AlternatingItem)

{

LinkButton btn = (LinkButton)(e.Item.Cells[7].Controls[1]);

btn.Attributes.Add("onClick","JavaScript:return confirm('确定删除吗?')");
//也可以在页面代码中直接设置Image或ImageButton的ImageUrl属性,详见页面代码.
//System.Web.UI.WebControls.ImageButton myimage=(System.Web.UI.WebControls
//.ImageButton)e.Item.Cells[5].FindControl("ImageButton1");

//myimage.ImageUrl="DisplayImage.aspx?id="+DataGrid1.DataKeys
//[e.Item.ItemIndex];

}

}
//删除按钮

private void DataGrid_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)

{
string employeeID=DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString();

string strSql="delete Employees where EmployeeID="+employeeID;
if(! new Base().SQLExeNonQuery(strSql))
{

Message.InnerHtml="删除失败!";

Message.Style["color"]="red";

}

else

{

BindGrid();

}

}
//datagrid的模板列修改链接按钮

private void DataGrid_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

Button1.Visible=false;//隐藏添加按钮

Button2.Visible=true;

Button3.Visible=true;

if(ViewState["datagridsource"].ToString() != "")

{

DataSet ds=(DataSet)ViewState["datagridsource"];
//获取要编辑的记录序号

int startIndex = DataGrid1.PageSize * DataGrid1.CurrentPageIndex;

int i=(int)e.Item.ItemIndex+startIndex;

//员工编号,用于修改语句的where子句.

TextBox9.Text=ds.Tables[0].Rows[i]["EmployeeID"].ToString();//不可编辑

TextBox1.Text=ds.Tables[0].Rows[i]["EmployeeName"].ToString();

DropDownList1.SelectedValue=ds.Tables[0].Rows[i]["GroupID"].ToString();

if(ds.Tables[0].Rows[i]["Sex"].ToString() == "F")

{

RadioButton2.Checked=true;

RadioButton1.Checked=false;

}

else

{

RadioButton1.Checked=true;

RadioButton2.Checked=false;

}

TextBox2.Text=ds.Tables[0].Rows[i]["Business"].ToString();

TextBox3.Text=ds.Tables[0].Rows[i]["sbirthdate"].ToString();

TextBox4.Text=ds.Tables[0].Rows[i]["shiredate"].ToString();

TextBox5.Text=ds.Tables[0].Rows[i]["Address"].ToString();

TextBox6.Text=ds.Tables[0].Rows[i]["HomePhone"].ToString();

TextBox7.Text=ds.Tables[0].Rows[i]["CellPhone"].ToString();

TextBox8.Text=ds.Tables[0].Rows[i]["Notes"].ToString();

}

}
//模板列"照片"使用了imagebutton控件,按钮的commandname属性设置为Update,借用了DataGrid
//固有的修改事件处理方法.

private void DataGrid_MyCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

string strlink="<script>window.open('DisplayImage.aspx?id="+DataGrid1.DataKeys
[(int)e.Item.ItemIndex]+"','newwindow','height=400,width=600,top=0,
left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,
location=no,status=no');</script>";

Response.Write(strlink);

}
//修改信息

private void Button2_Click(object sender, System.EventArgs e)

{
if(TextBox1.Text.Trim()=="")

{

Label1.Text="姓名不能为空";

return;

}

string strSql="update Employees set
EmployeeName=@EmployeeName,

Business=@Business,
GroupID=@GroupID, BirthDate=@BirthDate,

HireDate=@HireDate, "+"Address=@Address,HomePhone=@HomePhone,

CellPhone=@CellPhone,
Photo=@Photo, PhotoImageType=@PhotoImageType,

Notes=@Notes,Sex=@Sex where EmployeeID="+TextBox9.Text.Trim();

SqlCommand mycommand=new SqlCommand(strSql);
//设置SQL参数

setprocargument(mycommand);

Base basecode=new Base();
if(basecode.SQLExeNonQuery_proc(mycommand))

{

BindGrid();

TextBox1.Text="";

TextBox2.Text="";

TextBox3.Text="";

TextBox4.Text="";

TextBox5.Text="";

TextBox6.Text="";

TextBox7.Text="";

TextBox8.Text="";

}

else

{

EditMessage.InnerHtml="Update Failed. Error Details are: "+
basecode.BaseSqlErrDes;

EditMessage.Style["color"]="red";

}

}
//设置SQL参数
void setprocargument(SqlCommand mycommand)

{

SqlParameter name=new SqlParameter("@EmployeeName", SqlDbType.VarChar, 30);

name.Value=TextBox1.Text.Trim();

mycommand.Parameters.Add(name);
SqlParameter groupID=new SqlParameter("@GroupID", SqlDbType.SmallInt);

string organization=DropDownList1.SelectedValue;

if(organization !="")

groupID.Value=int.Parse(organization);

else

groupID.Value=DBNull.Value;

mycommand.Parameters.Add(groupID);
SqlParameter business=new SqlParameter("@Business", SqlDbType.VarChar, 30);

business.Value=TextBox2.Text.Trim();

mycommand.Parameters.Add(business);
SqlParameter birthDate=new SqlParameter("@BirthDate", SqlDbType.DateTime);

Regex reg =new Regex(@"^\d{1,4}(\-?)|(\/?)\d{1,2}(\-?)|(\/?)\d{1,2}$");

if(TextBox3.Text.Trim() =="")

birthDate.Value=DBNull.Value;

else

{

if(! reg.IsMatch(TextBox3.Text.Trim()))

{

Label2.Text="日期格式2008-8-8或2008/8/8";

return;

}

birthDate.Value=TextBox3.Text.Trim();

}

mycommand.Parameters.Add(birthDate);
SqlParameter hireDate=new SqlParameter("@HireDate", SqlDbType.DateTime);

if(TextBox4.Text.Trim() =="")

hireDate.Value=DBNull.Value;

else

{

if(! reg.IsMatch(TextBox4.Text.Trim()))

{

Label3.Text="日期格式2008-8-8或2008/8/8";

return;

}

hireDate.Value=TextBox4.Text.Trim();

}

mycommand.Parameters.Add(hireDate);
SqlParameter address=new SqlParameter("@Address", SqlDbType.VarChar, 60);

address.Value=TextBox5.Text.Trim();

mycommand.Parameters.Add(address);
SqlParameter homePhone=new SqlParameter("@HomePhone", SqlDbType.VarChar, 20);

homePhone.Value=TextBox6.Text.Trim();

mycommand.Parameters.Add(homePhone);
SqlParameter cellPhone=new SqlParameter("@CellPhone", SqlDbType.VarChar, 20);

cellPhone.Value=TextBox7.Text.Trim();

mycommand.Parameters.Add(cellPhone);
int imagesize;

string imagetype;

Stream imagestream;
imagesize=PersonImage.PostedFile.ContentLength;

if(imagesize>0)

{

imagetype=PersonImage.PostedFile.ContentType;

imagestream=PersonImage.PostedFile.InputStream;
byte[] imagecotent=new byte[imagesize];

int intstatus;

intstatus=imagestream.Read(imagecotent,0,imagesize);

SqlParameter pimage=new SqlParameter("@Photo", SqlDbType.Image);

pimage.Value=imagecotent;

mycommand.Parameters.Add(pimage);
SqlParameter pimagetype=new SqlParameter("@PhotoImageType",
SqlDbType.VarChar, 30);

pimagetype.Value=imagetype;

mycommand.Parameters.Add(pimagetype);

}

else

{

SqlParameter pimage=new SqlParameter("@Photo", SqlDbType.Image);

pimage.Value=DBNull.Value;

mycommand.Parameters.Add(pimage);
SqlParameter pimagetype=new SqlParameter("@PhotoImageType",
SqlDbType.VarChar, 30);

pimagetype.Value="";

mycommand.Parameters.Add(pimagetype);

}
SqlParameter notes=new SqlParameter("@Notes", SqlDbType.NText);

notes.Value=TextBox8.Text.Trim();

mycommand.Parameters.Add(notes);
SqlParameter psex=new SqlParameter("@Sex", SqlDbType.Char,1);

if(RadioButton1.Checked)

psex.Value="M";

else

psex.Value="F";

mycommand.Parameters.Add(psex);

}
private void DataGrid1_PageIndexChanged(object source,
System.Web.UI.WebControls.DataGridPageChangedEventArgs e)

{

DataGrid1.CurrentPageIndex = e.NewPageIndex;

BindGrid();

}
//取消修改

private void Button3_Click(object sender, System.EventArgs e)

{

TextBox1.Text="";

TextBox2.Text="";

TextBox3.Text="";

TextBox4.Text="";

TextBox5.Text="";

TextBox6.Text="";

TextBox7.Text="";

TextBox8.Text="";

Button1.Visible=true;

Button2.Visible=false;

Button3.Visible=false;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: