最近在做毕业设计,用的是ASP.NET,有好多问题,请求帮助,望各位大虾赐教(开发环境均为 winxp + visual studio 2003 + access)
2应用程序中的服务器错误。:
做完时在本机能运行,但在别的winxp里就有如下问题,不过在win2000下没有错误
下面为出错信息://************************************************************
“/TenementManage”应用程序中的服务器错误。
--------------------------------------------------------------------------------无法从指定的数据表中删除。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 无法从指定的数据表中删除。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[OleDbException (0x80004005): 无法从指定的数据表中删除。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +66
zy.database.OleDbDatabase.RunSql(String str_Sql) in d:\inetpub\wwwroot\tenementmanage\database.cs:74
TenementManage.WebForm1.dgTenement_DeleteCommand(Object source, DataGridCommandEventArgs e) in d:\inetpub\wwwroot\tenementmanage\tenement.aspx.cs:77
System.Web.UI.WebControls.DataGrid.OnDeleteCommand(DataGridCommandEventArgs e) +110
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +589
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +106
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +121
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +115
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
System.Web.UI.Page.ProcessRequestMain() +1277
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
//**************************************************************************************
//****************************************************************************************
2应用程序中的服务器错误。:
做完时在本机能运行,但在别的winxp里就有如下问题,不过在win2000下没有错误
下面为出错信息://************************************************************
“/TenementManage”应用程序中的服务器错误。
--------------------------------------------------------------------------------无法从指定的数据表中删除。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 无法从指定的数据表中删除。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪:
[OleDbException (0x80004005): 无法从指定的数据表中删除。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +66
zy.database.OleDbDatabase.RunSql(String str_Sql) in d:\inetpub\wwwroot\tenementmanage\database.cs:74
TenementManage.WebForm1.dgTenement_DeleteCommand(Object source, DataGridCommandEventArgs e) in d:\inetpub\wwwroot\tenementmanage\tenement.aspx.cs:77
System.Web.UI.WebControls.DataGrid.OnDeleteCommand(DataGridCommandEventArgs e) +110
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +589
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +106
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +121
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +115
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
System.Web.UI.Page.ProcessRequestMain() +1277
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
//**************************************************************************************
//****************************************************************************************
解决方案 »
- 问卷调查 单选 多选 文本列表如何从数据库遍历读取出来
- 关于ASP.NET中的验证码
- 怎样写完整的开发文档
- 有点迷惑问题哦,代码分离之后能否实现后台代码能访问前台界面中写的类似如下代码定义的类创建的实例?恳请思归大哥帮忙~
- ADO.NET如何使一个数值型字段的值为空
- 含有Response.Cookies语句的.cs编译dll后,加载到页面出现错误,高人指点!
- 何为正则表达式?有人可以用一个简单的例子说出来吗?
- post是怎么传值的
- 求救!!简单问题,在线等待,万分焦急,谢谢先!!
- 老板让学asp.net,我以前是在搞vb,我现在该如何下手?
- 谁知道,如何读取不同服务器的cookie
- 有关TextBox
index.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
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 zy.database;namespace tenement_manage
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgTenement;
protected OleDbDatabase oleDbDatabase;
private void Page_Load(object sender, System.EventArgs e)
{
oleDbDatabase=new OleDbDatabase( @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\luo.mdb");
dgTenement.DataSource=oleDbDatabase.GetDataTable("select * from tenement");
dgTenement.DataBind();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dgTenement.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.TenementCancelEdit);
this.dgTenement.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.TenementEditItem);
this.dgTenement.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.TenementUpdateEdit);
this.dgTenement.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.TenementDeteleItem);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void TenementDeteleItem(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string serial_number=e.Item.Cells[0].Text;
string borough=e.Item.Cells[1].Text;
string position=e.Item.Cells[2].Text;
//int area=Int32.Parse(((TextBox)e.Item.Cells[4].Controls[0]).Text);
string area=e.Item.Cells[3].Text;
string original_unit=e.Item.Cells[4].Text;
string deleteSql="delete from tenement where serial_number=" +serial_number;
//Response.Write("tenement delete" + " "+deleteSql);
oleDbDatabase.RunSql(deleteSql);
dgTenement.DataSource=oleDbDatabase.GetDataTable("select * from tenement");
dgTenement.DataBind();
} private void TenementEditItem(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dgTenement.EditItemIndex=(int)e.Item.ItemIndex;
dgTenement.DataSource=oleDbDatabase.GetDataTable("select * from tenement");
dgTenement.DataBind();
}
private void TenementCancelEdit(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dgTenement.EditItemIndex=-1;
dgTenement.DataSource=oleDbDatabase.GetDataTable("select * from tenement");
dgTenement.DataBind();
}
private void TenementUpdateEdit(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string serial_number=e.Item.Cells[0].Text;
string borough=( (TextBox) (e.Item.Cells[1].Controls[0])).Text;
string theposition=( (TextBox) (e.Item.Cells[2].Controls[0])).Text;
double area;
try
{
area=Double.Parse(( (TextBox) (e.Item.Cells[3].Controls[0])).Text); //如果输入的不是数字,则抛出异常
}
catch(Exception ex)
{
dgTenement.EditItemIndex=-1;
dgTenement.DataSource=oleDbDatabase.GetDataTable("select * from tenement");
dgTenement.DataBind();
return;
}
string original_unit=( (TextBox) (e.Item.Cells[4].Controls[0])).Text;
string updateSql="update tenement set borough=" + '\''+borough +'\''+ ",theposition=" + '\''+theposition
+ '\''+",area=" + area + ",original_unit=" + '\''+original_unit + '\''+" where serial_number=" +serial_number;
oleDbDatabase.RunSql(updateSql);
dgTenement.EditItemIndex=-1;
dgTenement.DataSource=oleDbDatabase.GetDataTable("select * from tenement");
dgTenement.DataBind();
}
}
}
database.csusing System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;namespace zy.database
{
//*************************************************************************************************************************************
/// <summary>
/// OleDbDatabase 的摘要说明。
/// </summary>
//*************************************************************************************************************************************
public class OleDbDatabase
{
private string connectString;
public OleDbConnection connection;
//public DataSet dataSet;
//public OleDbDataAdapter dataAdapter;
public string ConnectString
{
get
{
return connectString;
}
set
{
connectString=value;
}
}
//***************************************************
//******** 构造函数
public OleDbDatabase()
{
connectString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
} public OleDbDatabase(string ConnectString)
{
connectString = ConnectString;
} //******** 基本操作
//打开连接
public void Open()
{
connection=new OleDbConnection(connectString);
connection.Open();
} public void Open(string ConnectString)
{
connectString = ConnectString;
Open();
} //关闭连接
public void Close()
{
if(connection!=null)
{
connection.Close();
}
} //执行Sql语句
public void RunSql(string str_Sql)
{
Open();
OleDbCommand cmd = new OleDbCommand(str_Sql,connection);
cmd.ExecuteNonQuery();
connection.Close();
} //返回 DataSet,带 string TableName 参数为同时设置表名
public DataSet GetDataSet(string str_Sql,string TableName)
{
Open();
OleDbDataAdapter Ada = new OleDbDataAdapter(str_Sql,connection);
DataSet dataSet = new DataSet();
Ada.Fill(dataSet,TableName);
connection.Close();
return dataSet;
} public DataSet GetDataSet(string str_Sql)
{
Open();
OleDbDataAdapter Ada = new OleDbDataAdapter(str_Sql,connection);
DataSet dataSet = new DataSet();
Ada.Fill(dataSet);
connection.Close();
return dataSet;
} //返回 DataTable,带 string TableName 参数为同时设置表名
public DataTable GetDataTable(string str_Sql,string TableName)
{
DataSet dataSet=GetDataSet(str_Sql,TableName);
return dataSet.Tables[TableName];
}
public DataTable GetDataTable(string str_Sql)
{
DataSet dataSet=GetDataSet(str_Sql);
return dataSet.Tables[0];
} //返回 OleDbDataReader
public OleDbDataReader GetDataReader(string str_Sql)
{
Open();
OleDbCommand cmd = new OleDbCommand(str_Sql,connection);
OleDbDataReader dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
return dataReader;
}
}
}