最近在做毕业设计,用的是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 
//**************************************************************************************
//****************************************************************************************

解决方案 »

  1.   

    源代码:
    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();
    }

    }
    }
      

  2.   

    源代码:
    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;
    }
    }
    }