我用.net与access数据库
求助:一段删除和更新程序

解决方案 »

  1.   

    <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/fanmei.mdb" 
        DeleteCommand="DELETE FROM [fm_news] WHERE [fm_news_id] = ?" 
        InsertCommand="INSERT INTO [fm_news] ([fm_news_id], [fm_news_title], [fm_news_sclass], [fm_news_source], [fm_news_date]) VALUES (?, ?, ?, ?, ?)" 
        SelectCommand="SELECT [fm_news_id], [fm_news_title], [fm_news_lclass], [fm_news_sclass], [fm_news_source], [fm_news_date],[fm_sclass_title] FROM [fm_view_news] WHERE ([fm_news_lclass] = ?) AND ([fm_news_title] like '%' + ? + '%') AND ([fm_sclass_title] like ?) ORDER BY [fm_news_id] DESC" 
        UpdateCommand="UPDATE [fm_news] SET [fm_news_title] = ?, [fm_news_sclass] = ?, [fm_news_source] = ?, [fm_news_date] = ? WHERE [fm_news_id] = ?">
            <DeleteParameters>
                <asp:Parameter Name="fm_news_id" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="fm_news_title" Type="String" />
                <asp:Parameter Name="fm_news_sclass" Type="Int32" />
                <asp:Parameter Name="fm_news_source" Type="String" />
                <asp:Parameter Name="fm_news_date" Type="DateTime" />
                <asp:Parameter Name="fm_news_id" Type="Int32" />
            </UpdateParameters>
            <SelectParameters>
                <asp:QueryStringParameter DefaultValue="0" Name="fm_news_lclass" QueryStringField="lclassid" Type="Int32" />
                <asp:ControlParameter DefaultValue="%" ControlID="TextBox1" Type="String" Size="20" />
                <asp:ControlParameter DefaultValue="%" ControlID="DropDownList1" Type="String" Size="20" />
            </SelectParameters>
            <InsertParameters>
                <asp:Parameter Name="fm_news_id" Type="Int32" />
                <asp:Parameter Name="fm_news_title" Type="String" />
                <asp:Parameter Name="fm_news_sclass" Type="Int32" />
                <asp:Parameter Name="fm_news_source" Type="String" />
                <asp:Parameter Name="fm_news_date" Type="DateTime" />
            </InsertParameters>
        </asp:AccessDataSource>
        <asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/fanmei.mdb"
            SelectCommand="SELECT fm_sclass_id, fm_sclass_title FROM fm_sclass WHERE (fm_sclass_large = ?)">
            <SelectParameters>
                <asp:QueryStringParameter DefaultValue="0" Name="fm_sclass_large" QueryStringField="lcalssid"
                    Type="String" />
            </SelectParameters>
        </asp:AccessDataSource>
      

  2.   

    using System;
    using System.Configuration;
    using System.Data;
    using System.Data.OleDb;
    using System.Collections;
    using System.Text.RegularExpressions;
    using Help.Common;namespace DAL
    {
        public abstract class AccessHelper
        {
            public static readonly string ConnectionString = ConfigurationManager.AppSettings["Help"];        private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());        public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                return ExecuteNonQuery(ConnectionString, cmdType, cmdText, commandParameters);
            }        public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();
                using (OleDbConnection conn = new OleDbConnection(connectionString))
                {
                    PrepareCommand(cmd, conn, cmdType, cmdText, commandParameters);
                    int val = cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    return val;
                }
            }        public static int ExecuteNonQuery(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();
                PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                int val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                return val;
            }
            public static OleDbDataReader ExecuteReader(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                return ExecuteReader(ConnectionString, cmdType, cmdText, commandParameters);
            }
            public static OleDbDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();
                OleDbConnection conn = new OleDbConnection(connectionString);
                try
                {
                    PrepareCommand(cmd, conn, cmdType, cmdText, commandParameters);
                    OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                    return rdr;
                }
                catch
                {
                    conn.Close();
                    throw;
                }
            }        public static OleDbDataReader ExecuteReader(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();
                PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                OleDbDataReader rdr = cmd.ExecuteReader();
                cmd.Parameters.Clear();
                return rdr;
            }        public static object ExecuteScalar(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                return ExecuteScalar(ConnectionString, cmdType, cmdText, commandParameters);
            }        public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();            using (OleDbConnection connection = new OleDbConnection(connectionString))
                {
                    PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                    object val = cmd.ExecuteScalar();
                    cmd.Parameters.Clear();
                    return val;
                }
            }        public static object ExecuteScalar(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {            OleDbCommand cmd = new OleDbCommand();            PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                object val = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                return val;
            }        public static DataTable ExecuteTable(CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                return ExecuteTable(ConnectionString, cmdType, cmdText, commandParameters);
            }
            public static DataTable ExecuteTable(string connectionString, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {
                OleDbCommand cmd = new OleDbCommand();            using (OleDbConnection connection = new OleDbConnection(connectionString))
                {
                    PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);                OleDbDataAdapter ap = new OleDbDataAdapter();
                    ap.SelectCommand = cmd;
                    DataSet st = new DataSet();
                    ap.Fill(st, "Result");
                    cmd.Parameters.Clear();
                    return st.Tables["Result"];
                }
            }        public static DataTable ExecuteTable(OleDbConnection connection, CommandType cmdType, string cmdText, params OleDbParameter[] commandParameters)
            {            OleDbCommand cmd = new OleDbCommand();            PrepareCommand(cmd, connection, cmdType, cmdText, commandParameters);
                OleDbDataAdapter ap = new OleDbDataAdapter();
                ap.SelectCommand = cmd;
                DataSet st = new DataSet();
                ap.Fill(st, "Result");
                cmd.Parameters.Clear();
                return st.Tables["Result"];
            }        public static void CacheParameters(string cacheKey, params OleDbParameter[] commandParameters)
            {
                parmCache[cacheKey] = commandParameters;
            }
            public static OleDbParameter[] GetCachedParameters(string cacheKey)
            {
                OleDbParameter[] cachedParms = (OleDbParameter[])parmCache[cacheKey];            if (cachedParms == null)
                    return null;            OleDbParameter[] clonedParms = new OleDbParameter[cachedParms.Length];            for (int i = 0, j = cachedParms.Length; i < j; i++)
                    clonedParms[i] = (OleDbParameter)((ICloneable)cachedParms[i]).Clone();            return clonedParms;
            }        private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, CommandType cmdType, string cmdText, OleDbParameter[] cmdParms)
            {
                if (conn.State != ConnectionState.Open)
                    conn.Open();            cmd.Connection = conn;
                cmd.CommandText = cmdText;            cmd.CommandType = cmdType;            if (cmdParms != null)
                {
                    foreach (OleDbParameter parm in cmdParms)
                        cmd.Parameters.Add(parm);
                }
            }
        }
    }