我在VS2005中,想做三层的东西,SELECT语句的可以执行,但是其他编辑语句就执行报错,弹出个对话框,说不明错误,500。我在WEBMATRIX里面可以执行INSERT和DELETE,但是不能执行UPDATE,这是怎么回事呀!!?

解决方案 »

  1.   

    public class CompanyEdit
        {
            protected string webpath;
            protected string datapath;
            protected DataBasic DB;
            protected OleDbCommand comm;        public CompanyEdit(string inwebpath)
            {
                webpath = inwebpath;
                ReturnFilePath rfp = new ReturnFilePath(inwebpath);
                datapath = rfp.ReturnPath();
                DB = new DataBasic(datapath);
                comm = new OleDbCommand();
            }        public string ReturnText()
            {
                string text;
               
                comm.CommandText = "SELECT content FROM CompanyIntroduce WHERE id = '1'";
                text = DB.DataReader(comm);
                return text;
            }
            public void SaveData(string text)
            {
                //comm = new OleDbCommand();
                comm.CommandText = "UPDATE CompanyIntroduce SET content = @content WHERE  id = '1' ";
                //comm.CommandText = "UPDATE CompanyIntroduce SET content = 1 WHERE  id = '1' ";
                comm.Parameters.AddWithValue("@content", text.ToString());
                //comm.Parameters.AddWithValue("@id", "1");
                DB.SQLExecute(comm);
            }
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using System.Data;
    using System.Data.OleDb;
    namespace DLL
    {
        public class DataBasic
        {
            private string webPath;        protected OleDbConnection conn;
            //protected OleDbCommand comm;        public DataBasic(string strPath)
            {
                webPath = strPath;            conn = new OleDbConnection();
                conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
                                        @"Data source= " +
                                        webPath;
                
            }        public string DataReader(OleDbCommand comm)
            {
                string text="";
                OleDbDataReader reader;            comm.Connection = conn;
                conn.Open();
                reader = comm.ExecuteReader();            while(reader.Read())
                {
                    text = reader["content"].ToString();
                }            return text;
            }        public void SQLExecute(OleDbCommand comm)
            {
                comm.Connection = conn;
                conn.Open();
                comm.ExecuteNonQuery();
            }
            /*public string PDataPath()
            {
                    string RTdataPath = "";
                    if(File.Exists(webPath + @"\data\db.mdb"))
                    {
                        RTdataPath = webPath + @"\data\db.mdb"; 
                    }
                    else if (File.Exists(webPath + @"..\data\db.mdb"))
                    {
                        RTdataPath = webPath + @"..\data\db.mdb"; 
                    }
                    return RTdataPath;
          
            }*/
        }
    }
      

  3.   

    UPDATE CompanyIntroduce SET content = @content WHERE  id = '1' "
    这句使用了参数,改成
    "@UPDATE [CompanyIntroduce] SET [content]={0} WHERE [id]='',content"
    试试
      

  4.   

    你的 db 操作类
    有严重的问题所有的操作
     conn.open以后
    都没有即时的关闭.
      

  5.   

    用DataAdapter,那样就不用关系连接的关闭了。
      

  6.   

    comm.CommandText = "UPDATE CompanyIntroduce SET content = @content WHERE  id = '1' ";
    改为
    comm.CommandText = "UPDATE CompanyIntroduce SET content =" + @content +" WHERE  id = '1' ";