using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace MyData
{
    /// <summary>
    /// SqlServerDataBase 的摘要说明
    /// </summary>
    public class DBAccess
    {
        private string strError = null;
        private int intCount = 0;
        public DBAccess()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }
        /// <summary>
        /// 公开方法DBConn,返回数据库连接
        /// </summary>
        /// <returns></returns>
        public SqlConnection DBconn()
        {
            string strConn = "Server=(local);Database=bole;Uid=sa;pwd=";
            try
            {
                return new SqlConnection(strConn);
            }
            catch (Exception)
            {
                return null;
            }
        }
        /// <summary>
        /// 公开属性ErrorMessage,返回错误信息
        /// </summary>
        public string ErrorMessage
        {
            get
            {
                return strError;
            }
        }        /// <summary>
        /// 根据查询语句从数据库检索数据
        /// </summary>
        /// <param name="strSelect">查询语句</param>
        /// <param name="SqlConn">数据库连接</param>
        /// <returns>有数据则返回DataSet对象,否则返回null</returns>
        public DataSet Select(string SelectString, SqlConnection sqlConn)
        {
            strError = "";
            SqlConnection conn;
            if (sqlConn == null)
            {
                conn = DBconn();
            }
            else
            {
                conn = sqlConn;
            }
            try
            {
                //若数据库连接的当前状态是关闭的,则打开连接
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
                SqlCommand selectCommand = new SqlCommand(SelectString, conn);
                selectCommand.CommandType = CommandType.Text;
                mySqlDataAdapter.SelectCommand = selectCommand;
                DataSet myDS = new DataSet();
                mySqlDataAdapter.Fill(myDS);
                return myDS;
            }
            catch (Exception e)
            {
                strError = "数据检索失败:" + e.Message;
                return null;
            }
            finally
            {
                if (conn.State != ConnectionState.Closed)
                {
                    conn.Close();
                }
            }
        }
        /// <summary>
        /// 更新数据库
        /// </summary>
        /// <param name="UpdateString">Update Sql语句</param>
        /// <param name="SqlConn">数据库连接</param>
        /// <returns>更新成功返回true</returns>
        public bool Update(string UpdateString, SqlConnection SqlConn)
        {
            return udiDataBase(UpdateString, SqlConn);
        }
        /// <summary>
        /// 从数据库中删除数据
        /// </summary>
        /// <param name="DeleteString">Delete Sql语句</param>
        /// <param name="SqlConn">数据库连接</param>
        /// <returns>删除成功返回true</returns>
        public bool Delete(string DeleteString, SqlConnection SqlConn)
        {
            return udiDataBase(DeleteString, SqlConn);
        }
        /// <summary>
        /// 把数据插入数据库
        /// </summary>
        /// <param name="InsertString">Insert Sql语句</param>
        /// <param name="SqlConn">数据库连接</param>
        /// <returns>插入成功返回true</returns>
        public bool Insert(string InsertString, SqlConnection SqlConn)
        {
            return udiDataBase(InsertString, SqlConn);
        }
        /// <summary>
        /// 根据Sql语句更新数据库
        /// </summary>
        /// <param name="UDIString">更新语句</param>
        /// <param name="SqlConn">数据库连接</param>
        /// <returns>更新成功则返回true</returns>
        public bool udiDataBase(string UDIString, SqlConnection SqlConn)
        {
            strError = "";
            SqlConnection conn;
            if (SqlConn == null)
            {
                conn = DBconn();
            }
            else
            {
                conn = SqlConn;
            }
            try
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                SqlCommand cmd = new SqlCommand(UDIString, conn);
                cmd.CommandType = CommandType.Text;
                intCount = cmd.ExecuteNonQuery();
                return !(intCount < 1);
            }
            catch (Exception e)
            {
                strError = "更新数据库失败:" + e.Message;
                return false;
            }
            finally
            {
                if (conn.State != ConnectionState.Closed)
                {
                    conn.Close();
                }
            }
        }
    }}
上面是数据库操作类DBAccess.cs
我在页面中想插入记录到数据库,但是老实插不进去,忘高手相助,错在哪里!
页面的代码如下:
protected void Button1_Click(object sender, EventArgs e)
    {
        DBAccess dbaccess = new DBAccess();
        string sql = "Insert Into cluture (culture_name) values('"+TextBox1.Text.Trim()+"')";
        Boolean isOk = dbaccess.Insert(sql,null);
        if (isOk)
        {
            Response.Write("ok");
        }
        else
        {
            Response.Write("error");
        }
    }

解决方案 »

  1.   

    你现在的异常信息都被catch捕获了,要先看出什么信息还有,如果你的页面类和DBAccess类不在同一个命名空间的话DBAccess dbaccess = new DBAccess();
    需要改为
    MyData.DBAccess dbaccess = new MyData.DBAccess();
      

  2.   

    调试以后,出错是这样的:在 System.Data.SqlClient.SqlException 中第一次偶然出现的“System.Data.dll”类型的异常
      

  3.   

    写得好复杂。
     不能简单点吗?
    public class DataAccess
    {
    public DataAccess()
    {

    }    //数据库放在App_Data目录
        private readonly string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =|DataDirectory|test.mdb";    public DataSet ReturnDataSet(string cmdText)
        {
            using (OleDbConnection conn = new OleDbConnection(ConnectionString))
            {
                conn.Open();
                using (OleDbDataAdapter oda = new OleDbDataAdapter(cmdText, conn))
                {
                    using (DataSet ds = new DataSet())
                    {
                        oda.Fill(ds);
                        return ds;
                    }
                }
            }
        }    public bool ExecuteNonQuery(string cmdText)
        {
            using (OleDbConnection conn = new OleDbConnection(ConnectionString))
            {
                conn.Open();
                using (OleDbCommand comm = new OleDbCommand(cmdText, conn))
                {
                    int i = comm.ExecuteNonQuery();
                    if (i > 0)
                    {
                        return true;
                    }
                }
            }
            return false;
        }
    }
    -----------------------------------------------------------------------------------------------
    string sql = "Insert Into cluture (culture_name) values('"+TextBox1.Text.Trim()+"')";
    DataAccess da=new DataAccess();
    if(da.ExecuteNonQuery(sql))
    {
      //......
    }