如何在c#中使用adodb.command执行SQL语句?
请各位大侠指点一下,最好有个完整的示例代码
嗯,要执行SQL语句的,不是执行存储过程的

解决方案 »

  1.   


      public abstract class SqlHelper
        {
            /// <summary>
            /// 当前数据库连接字符串
            /// </summary>
            public static readonly String ConnectionString = ConfigurationManager.AppSettings["connectionString"];        /// <summary>
            /// 初始化连接字符串
            /// </summary>
            static SqlHelper()
            {        }        /// <summary>
            /// 根据当前默认连接字符串,执行指定SQL语句,返回影响行数
            /// </summary>
            /// <param name="cmdText">SQL语</param>
            /// <returns>影响行数</returns>
            public static int ExecuteNonQuery(String cmdText)
            {
                return ExecuteNonQuery(null, CommandType.Text, cmdText, null);
            }        /// <summary>
            /// 根据当前默认连接字符串,执行指定SQL语句,返回影响行数
            /// </summary>
            /// <param name="cmdText">SQL语句</param>
            /// <param name="commandParameters">参数列表</param>
            /// <returns>影响行数</returns>
            public static int ExecuteNonQuery(String cmdText, params SqlParameter[] commandParameters)
            {
                return ExecuteNonQuery(null, CommandType.Text, cmdText, commandParameters);
            }        /// <summary>
            /// 根据当前默认连接字符串,指明命令文本,解析命令方式和参数执行命令,返回影响行数
            /// </summary>
            /// <param name="cmdText">存储过程名称</param>
            /// <param name="cmdType">解析命令字符串的类型</param>
            /// <param name="commandParameters">参数列表</param>
            /// <returns>影响行数</returns>
            public static int ExecuteNonQuery(String cmdText, CommandType cmdType, params SqlParameter[] commandParameters)
            {
                return ExecuteNonQuery(null, cmdType, cmdText, commandParameters);
            }        /// <summary>
            /// 内部方法: 执行Update类型的cmdText,返回影响行数
            /// </summary>
            public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, String cmdText, params SqlParameter[] commandParameters)
            {
                SqlCommand cmd = new SqlCommand();
                SqlConnection conn = null;
                if (null == trans)
                    conn = new SqlConnection(ConnectionString);
                else 
                   conn = trans.Connection;
                int val = 0;            PrepareCommand(cmd, conn, trans, cmdType, cmdText, commandParameters);
                val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                return val;
            }        /// <summary>
            /// 内部方法: 根据命令字符串文本查询结果集,返回SqlDataReader
            /// </summary>
            private static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
            {
                SqlCommand cmd = new SqlCommand();
                SqlConnection conn = new SqlConnection(connectionString);            PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);            cmd.Parameters.Clear();
                return reader;
            }        /// <summary>
            /// 根据当前默认连接字符串,指定命令字符串文本,解析命令方式和参数列表进行查询,返回DataSet
            /// </summary>
            /// <param name="cmdText">命令字符串文本</param>
            /// <param name="cmdType">解析命令方式</param>
            /// <param name="commandParameters">参数集合</param>
            /// <returns>返回DataSet</returns>
            public static DataSet ExecuteDataSet(String cmdText, CommandType cmdType, params SqlParameter[] commandParameters)
            {
                SqlCommand cmd = new SqlCommand();
                SqlConnection conn = new SqlConnection(ConnectionString);
                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);            DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = cmd;
                da.Fill(ds);
                return ds;
            }        /// <summary>
            /// 内部方法: 返回结果集中第一行的第一列值
            /// </summary>
            private static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
            {
                SqlCommand cmd = new SqlCommand();
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
                    object val = cmd.ExecuteScalar();
                    cmd.Parameters.Clear();
                    return val;
                }
            }        /// <summary>
            /// 根据当前默认连接字符串,执行指定SQL语句,返回SqlDataReader
            /// </summary>
            /// <param name="cmdText">SQL语句</param>
            /// <returns>查询结果集合</returns>
            public static SqlDataReader ExecuteReader(string cmdText)
            {
                return ExecuteReader(ConnectionString, CommandType.Text, cmdText, null);
            }        /// <summary>
            /// 根据当前默认连接字符串,执行指定SQL语句,返回SqlDataReader
            /// </summary>
            /// <param name="cmdText">命令字符串文本</param>
            /// <param name="cmdType">解析cmd命令的方式</param>
            /// <returns>查询结果集合</returns>
            public static SqlDataReader ExecuteReader(string cmdText, CommandType cmdType)
            {
                return ExecuteReader(ConnectionString, cmdType, cmdText, null);
            }        /// <summary>
            /// 根据当前默认连接字符串,执行指定SQL语句,返回DataSet
            /// </summary>
            /// <param name="cmdText">SQL语句</param>
            /// <returns>返回DataSet</returns>
            public static DataSet ExecuteDataSet(String cmdText)
            {
                return ExecuteDataSet(cmdText, CommandType.Text, null);
            }        /// <summary>
            /// 根据当前默认连接字符串,指定命令字符串文本和解析命令方式进行查询,返回DataSet
            /// </summary>
            /// <param name="cmdText">SQL语句</param>
            /// <returns>返回DataSet</returns>
            public static DataSet ExecuteDataSet(String cmdText, CommandType cmdType)
            {
                return ExecuteDataSet(cmdText, cmdType, null);
            }        /// <summary>
            /// 根据sql查询语句返回结果集中的第一行第一列值
            /// </summary>
            /// <param name="cmdText">sql语句</param>
            /// <param name="commandParameters">参数列表</param>
            /// <returns>返回结果</returns>
            public static object ExecuteScalarBySQL(string cmdText)
            {
                return ExecuteScalar(ConnectionString, CommandType.Text, cmdText, null);
            }        /// <summary>
            /// 为Command执行前作预备工作
            /// </summary>
            /// <param name="cmd">需要执行的T_SQL语句或者存储过程</param>
            /// <param name="conn"></param>
            /// <param name="trans">需要处理的事务</param>
            /// <param name="cmdType">解析命令字符的类型</param>
            /// <param name="cmdText">需要执行T-SQL语句或者存储过程名称</param>
            /// <param name="cmdParms">参数列表</param>
            private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, String cmdText, SqlParameter[] cmdParms)
            {
                if (conn.State != ConnectionState.Open)
                    conn.Open();            cmd.Connection = conn;
                cmd.CommandText = cmdText;
                cmd.CommandType = cmdType;            if (trans != null)
                    cmd.Transaction = trans;            if (cmdParms != null)
                {
                    foreach (SqlParameter parm in cmdParms)
                        cmd.Parameters.Add(parm);
                }
            }
        }
      

  2.   

    老大,看好标题……是ADODB.Command
      

  3.   

    你访问什么数据库?为什么非要用adodb.command呢?感觉这个好像是asp中的吧?
    在C#中有一些列访问数据库的类,从OleDB、SqlClient、ODBC、OracleClient到MySQLClient,从mdb、excel、csv、Oracle、MySQL、SQL Server。
      

  4.   

    是为了方便事务回滚
    因为我在c#中调用a模块,而a模块是vb做的,其中要用到ADODB.Command进行数据库操作,
    也就是说我和那个模块要共用一个ADODB.Command