有没有人遇到这样的问题 本帖最后由 wuhenyueyue 于 2010-07-25 08:29:05 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /// <summary> /// 数据库助手类,执行数据库的增删查改操作 /// </summary> public class SqlHelper { SqlConnection SqlCon = null; /// <summary> /// SqlHelper类的构造函数,建立数据库的一个连接 /// </summary> /// <param name="connectionString">数据库连接字符串</param> public SqlHelper(string connectionString) { this.SqlCon = new SqlConnection(connectionString); } /// <summary> /// 如果数据库连接是关闭的,则打开数据库连接 /// </summary> private void OpenSqlConnection() { if (ConnectionState.Closed == SqlCon.State) { this.SqlCon.Open(); } } /// <summary> /// 如果数据库连接是打开的,则关闭数据库连接 /// </summary> private void CloseSqlConnection() { if (ConnectionState.Open == SqlCon.State) { SqlCon.Close(); } } /// <summary> /// 构造带参数的SqlCommand /// </summary> /// <param name="queryString">Sql语句或存储过程名称</param> /// <param name="pare">需要的参数</param> /// <param name="cmdType">执行方式</param> /// <returns>SqlCommand</returns> private SqlCommand CreateCmdWithPara(string queryString, SqlParameter[] pare, CommandType cmdType) { SqlCommand cmd = null; try { OpenSqlConnection(); cmd = new SqlCommand(queryString, SqlCon); cmd.CommandType = cmdType; cmd.Parameters.AddRange(pare); } catch (Exception) { } finally { SqlCon.Close(); } return cmd; } /// <summary> /// 构造不带参数的SqlCommand /// </summary> /// <param name="queryString">Sql语句或存储过程名称</param> /// <param name="cmdType">执行方式</param> /// <returns></returns> private SqlCommand CreateCmdNoPara(string queryString, CommandType cmdType) { SqlCommand cmd = null; try { OpenSqlConnection(); cmd = new SqlCommand(queryString, SqlCon); cmd.CommandType = cmdType; } catch (Exception) { throw; } finally { SqlCon.Close(); } return cmd; } #region 执行存储过程 /// <summary> /// 执行不带参数的查询数据的存储过程 /// </summary> /// <param name="StoreName">存储过程名</param> /// <returns>查询结果DataTable</returns> public DataTable ExecuteStoreNoPara(string StoreName) { DataTable dt = new DataTable(); try { using (SqlCommand cmd = CreateCmdNoPara(StoreName, CommandType.StoredProcedure)) { OpenSqlConnection(); dt.Load(cmd.ExecuteReader()); } } catch (Exception) { throw; } finally { this.SqlCon.Close(); } return dt; } /// <summary> /// 执行带参数的查询数据的存储过程 /// </summary> /// <param name="storeName">存储过程名</param> /// <param name="para">参数</param> /// <returns>查询结果DataTable</returns> public DataTable ExecuteStoreWithPara(string storeName, SqlParameter[] para) { DataTable dt = new DataTable(); try { using (SqlCommand cmd = CreateCmdWithPara(storeName, para, CommandType.StoredProcedure)) { OpenSqlConnection(); dt.Load(cmd.ExecuteReader()); } } catch (Exception) { throw; } finally { this.SqlCon.Close(); } return dt; } /// <summary> /// 执行不带参数的增、删、改存储过程 /// </summary> /// <param name="StoreName">存储过程名</param> /// <returns>受影响的行数</returns> public int ExecuteNonStoreNoPara(string StoreName) { int number; try { using (SqlCommand cmd = CreateCmdNoPara(StoreName, CommandType.StoredProcedure)) { OpenSqlConnection(); number = cmd.ExecuteNonQuery(); } } catch (Exception) { throw; } finally { this.SqlCon.Close(); } return number; } /// <summary> /// 执行带参数的增、删、改存储过程 /// </summary> /// <param name="storeName">存储过程名</param> /// <param name="para">参数</param> /// <returns>受影响行数</returns> public int ExecuteNonStoreWithPara(string storeName, SqlParameter[] para) { int number; try { using (SqlCommand cmd = CreateCmdWithPara(storeName, para, CommandType.StoredProcedure)) { OpenSqlConnection(); number = cmd.ExecuteNonQuery(); } } catch (Exception) { throw; } finally { this.SqlCon.Close(); } return number; } #endregion以上是sqlhelper类。 BLL_Devices DevicesOpe = new BLL_Devices(); BLL_CategoryManage CategoryManage = new BLL_CategoryManage(); BLL_Department Department = new BLL_Department(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (null == Session["UserID"]) { Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"请您先登陆!\");window.location.href='index.aspx';</script>"); } else { //显示装备所属总类下拉框 CategoryBind(CategoryManage.GetBaseCategory()); //选择当前技术状况 //生成部门树形结构 CreateDepChildNode(this.tree_Departmnet.Nodes, 0); } } } #region 提交按钮事件 //提交按钮事件 protected void Btn_tijiao_Click(object sender, EventArgs e) { DevicesModel model = new DevicesModel(); model.AllotNumber = this.tex_AllotNumber.Text.Trim(); model.DeviceNO = this.tex_DeviceNumber.Text.Trim(); // model.DeviceName = this.tex_DeveiceName.Text.Trim(); model.CatetoryID = Convert.ToInt32(this.ddl_CategoryID.SelectedValue); model.IssueDate = this.tex_IssueDate.Text.Trim(); model.Storage = this.tex_Storage.Text.Trim(); model.ReceiveMan = this.tex_ReceiveMan.Text.Trim(); model.Location = this.tex_Location.Text.Trim(); if ("" == this.hid_Value.Value) { model.DepartmentID = 0; } else { model.DepartmentID = Convert.ToInt32(this.hid_Value.Value);//将隐藏字段的值(即所选择的部门的ID) } model.ProductDate = this.tex_ProductDate.Text.Trim(); model.Manufacture = this.tex_Manufacture.Text.Trim(); model.ManufacturePhone = this.tex_ManufacturePhone.Text.Trim(); //将当前技术状况的Text赋给model。 model.Status = this.ddl_NowStatus.SelectedItem.Text; model.CombatOut = this.FCK_Combatout.Value; model.Demo = this.FCK_Demo.Value; model.Performance = this.FCK_Performance.Value; if (0 == model.CatetoryID) { Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"请选择类别!\");</script>"); } else { if ("0"==this.ddl_NowStatus.SelectedValue) { Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"请选择当前技术状况!\");</script>"); } else { try { //如果添加成功 if (DevicesOpe.InsertDevice(model)) { Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert('提交成功!'); window.location.href='StoreArms.aspx';</script>"); }//end if else { Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"提交失败!请检查并重新输入。\");</script>"); } } catch (Exception) { Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"抱歉,出错了!请与维护人员联系!\");</script>"); } } } } #endregion这是提交事件,请各位帮忙看看有什么不对的地方。 using (SqlCommand cmd = CreateCmdWithPara(storeName, para, CommandType.StoredProcedure))好像不用放到trycatch里吧 谢谢您的回复,加一个try catch是为了保证释放sqlConnection 那应该是调用private void CloseSqlConnection()函数吧 this.SqlCon.Close();该为CloseSqlConnection();试试行吗? 他们有什么区别吗?都是用的SqlCon.Close() 晕,那个函数不是多了一个ConnectionState.Open == SqlCon.State判断嘛 你是不是设置该控件的 maxlength属性了 我猜测,去掉这句话,应该就没问题了。Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert('提交成功!'); window.location.href='StoreArms.aspx';</script>"); 如何获取DataList中的Repeater的复选框的值 IIS设置ASP.net版本问题 **** * * * * * * 怪!!怪!!!很简单的redirect为什么不能跳转 * * * * * * * * **** 怎样动态在FormView里添加控件? 请大家帮忙看下这样给控件属性绑定数据有什么问题? 关于查询结果集缓存的问题 我的用户控件很简单但有问题,急啊!!! 急!请问在asp中使用createobject建立对象,那么在asp.net(vb)中如何建立一个对象呀? 一个问题 小弟新手,用iis发布网页的问题 哪位推荐一本aspx入门的电子书? 自学问题
/// 数据库助手类,执行数据库的增删查改操作
/// </summary>
public class SqlHelper
{ SqlConnection SqlCon = null;
/// <summary>
/// SqlHelper类的构造函数,建立数据库的一个连接
/// </summary>
/// <param name="connectionString">数据库连接字符串</param>
public SqlHelper(string connectionString)
{
this.SqlCon = new SqlConnection(connectionString);
} /// <summary>
/// 如果数据库连接是关闭的,则打开数据库连接
/// </summary>
private void OpenSqlConnection()
{
if (ConnectionState.Closed == SqlCon.State)
{
this.SqlCon.Open();
}
} /// <summary>
/// 如果数据库连接是打开的,则关闭数据库连接
/// </summary>
private void CloseSqlConnection()
{
if (ConnectionState.Open == SqlCon.State)
{
SqlCon.Close();
}
} /// <summary>
/// 构造带参数的SqlCommand
/// </summary>
/// <param name="queryString">Sql语句或存储过程名称</param>
/// <param name="pare">需要的参数</param>
/// <param name="cmdType">执行方式</param>
/// <returns>SqlCommand</returns>
private SqlCommand CreateCmdWithPara(string queryString, SqlParameter[] pare, CommandType cmdType)
{
SqlCommand cmd = null;
try
{
OpenSqlConnection();
cmd = new SqlCommand(queryString, SqlCon);
cmd.CommandType = cmdType;
cmd.Parameters.AddRange(pare);
}
catch (Exception)
{
}
finally
{
SqlCon.Close();
}
return cmd; } /// <summary>
/// 构造不带参数的SqlCommand
/// </summary>
/// <param name="queryString">Sql语句或存储过程名称</param>
/// <param name="cmdType">执行方式</param>
/// <returns></returns>
private SqlCommand CreateCmdNoPara(string queryString, CommandType cmdType)
{
SqlCommand cmd = null;
try
{
OpenSqlConnection();
cmd = new SqlCommand(queryString, SqlCon);
cmd.CommandType = cmdType;
}
catch (Exception)
{ throw;
}
finally
{
SqlCon.Close();
}
return cmd; } #region 执行存储过程 /// <summary>
/// 执行不带参数的查询数据的存储过程
/// </summary>
/// <param name="StoreName">存储过程名</param>
/// <returns>查询结果DataTable</returns>
public DataTable ExecuteStoreNoPara(string StoreName)
{
DataTable dt = new DataTable();
try
{
using (SqlCommand cmd = CreateCmdNoPara(StoreName, CommandType.StoredProcedure))
{
OpenSqlConnection();
dt.Load(cmd.ExecuteReader());
}
}
catch (Exception)
{ throw;
}
finally
{
this.SqlCon.Close();
}
return dt;
} /// <summary>
/// 执行带参数的查询数据的存储过程
/// </summary>
/// <param name="storeName">存储过程名</param>
/// <param name="para">参数</param>
/// <returns>查询结果DataTable</returns>
public DataTable ExecuteStoreWithPara(string storeName, SqlParameter[] para)
{
DataTable dt = new DataTable();
try
{
using (SqlCommand cmd = CreateCmdWithPara(storeName, para, CommandType.StoredProcedure))
{
OpenSqlConnection();
dt.Load(cmd.ExecuteReader());
}
}
catch (Exception)
{ throw;
}
finally
{
this.SqlCon.Close();
}
return dt;
} /// <summary>
/// 执行不带参数的增、删、改存储过程
/// </summary>
/// <param name="StoreName">存储过程名</param>
/// <returns>受影响的行数</returns>
public int ExecuteNonStoreNoPara(string StoreName)
{
int number;
try
{
using (SqlCommand cmd = CreateCmdNoPara(StoreName, CommandType.StoredProcedure))
{
OpenSqlConnection();
number = cmd.ExecuteNonQuery();
}
}
catch (Exception)
{ throw;
}
finally
{
this.SqlCon.Close();
}
return number;
} /// <summary>
/// 执行带参数的增、删、改存储过程
/// </summary>
/// <param name="storeName">存储过程名</param>
/// <param name="para">参数</param>
/// <returns>受影响行数</returns>
public int ExecuteNonStoreWithPara(string storeName, SqlParameter[] para)
{
int number;
try
{
using (SqlCommand cmd = CreateCmdWithPara(storeName, para, CommandType.StoredProcedure))
{
OpenSqlConnection();
number = cmd.ExecuteNonQuery();
}
}
catch (Exception)
{ throw;
}
finally
{
this.SqlCon.Close();
}
return number;
}
#endregion以上是sqlhelper类。
BLL_Devices DevicesOpe = new BLL_Devices();
BLL_CategoryManage CategoryManage = new BLL_CategoryManage();
BLL_Department Department = new BLL_Department(); protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
if (null == Session["UserID"])
{
Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"请您先登陆!\");window.location.href='index.aspx';</script>");
}
else
{
//显示装备所属总类下拉框
CategoryBind(CategoryManage.GetBaseCategory()); //选择当前技术状况
//生成部门树形结构
CreateDepChildNode(this.tree_Departmnet.Nodes, 0);
}
} }
#region 提交按钮事件
//提交按钮事件
protected void Btn_tijiao_Click(object sender, EventArgs e)
{
DevicesModel model = new DevicesModel(); model.AllotNumber = this.tex_AllotNumber.Text.Trim();
model.DeviceNO = this.tex_DeviceNumber.Text.Trim();
// model.DeviceName = this.tex_DeveiceName.Text.Trim();
model.CatetoryID = Convert.ToInt32(this.ddl_CategoryID.SelectedValue);
model.IssueDate = this.tex_IssueDate.Text.Trim();
model.Storage = this.tex_Storage.Text.Trim();
model.ReceiveMan = this.tex_ReceiveMan.Text.Trim();
model.Location = this.tex_Location.Text.Trim();
if ("" == this.hid_Value.Value)
{
model.DepartmentID = 0;
}
else
{
model.DepartmentID = Convert.ToInt32(this.hid_Value.Value);//将隐藏字段的值(即所选择的部门的ID)
}
model.ProductDate = this.tex_ProductDate.Text.Trim();
model.Manufacture = this.tex_Manufacture.Text.Trim();
model.ManufacturePhone = this.tex_ManufacturePhone.Text.Trim(); //将当前技术状况的Text赋给model。
model.Status = this.ddl_NowStatus.SelectedItem.Text; model.CombatOut = this.FCK_Combatout.Value;
model.Demo = this.FCK_Demo.Value;
model.Performance = this.FCK_Performance.Value; if (0 == model.CatetoryID)
{
Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"请选择类别!\");</script>");
}
else
{
if ("0"==this.ddl_NowStatus.SelectedValue)
{
Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"请选择当前技术状况!\");</script>");
}
else
{
try
{
//如果添加成功
if (DevicesOpe.InsertDevice(model))
{
Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert('提交成功!'); window.location.href='StoreArms.aspx';</script>"); }//end if
else
{
Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"提交失败!请检查并重新输入。\");</script>");
}
}
catch (Exception)
{ Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert(\"抱歉,出错了!请与维护人员联系!\");</script>");
}
}
}
}
#endregion
这是提交事件,请各位帮忙看看有什么不对的地方。
Page.RegisterStartupScript("a", "<script lanaguage=\"javascript\">alert('提交成功!'); window.location.href='StoreArms.aspx';</script>");