SQLHELPERcn.CS部分代码#region ExecuteNonQuery命令    /// <summary>
    /// 执行指定连接字符串,类型的SqlCommand.
    /// </summary>
    /// <res>
    /// 示例:  
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders");
    /// </res>
    /// <param name="connectionString">一个有效的数据库连接字符串</param>
    /// <param name="commandType">命令类型 (存储过程,命令文本, 其它.)</param>
    /// <param name="commandText">存储过程名称或SQL语句</param>
    /// <returns>返回命令影响的行数</returns>
    public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText)
    {
        return ExecuteNonQuery(connectionString, commandType, commandText, (SqlParameter[])null);
    }    /// <summary>
    /// 执行指定连接字符串,类型的SqlCommand.如果没有提供参数,不返回结果.
    /// </summary>
    /// <res>
    /// 示例:  
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
    /// </res>
    /// <param name="connectionString">一个有效的数据库连接字符串</param>
    /// <param name="commandType">命令类型 (存储过程,命令文本, 其它.)</param>
    /// <param name="commandText">存储过程名称或SQL语句</param>
    /// <param name="commandParameters">SqlParameter参数数组</param>
    /// <returns>返回命令影响的行数</returns>
    public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
    {
        if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString");
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            return ExecuteNonQuery(connection, commandType, commandText, commandParameters);
        }
    }  ----------------------------在页面中调用时这样写的:(string sqlexec = "select * from X_Users";
            SqlCommand cmd = new SqlCommand();
            //定义对象资源保存的范围,一旦using范围结束,将释放对方所占的资源
            using (SqlConnection conn = new SqlConnection(SqlHelper.ConnStr))
            {
                //打开连接
                conn.Open();
                //调用执行方法,因为没有参数,所以最后一项直接设置为null
                SqlHelper.ExecuteNonQuery(conn, CommandType.StoredProcedure, sqlexec, null);
                Response.Write("<font color=red>操作完成!请检查数据库!</font>");
            }-------------------
可是一直提示错误:当前上下文中不存在名称“CommandType”正确的应该怎么调用呀
示例中
    /// 示例:  
    ///  int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));publishOrders是什么意思呀?应该怎么写?谢谢

解决方案 »

  1.   

    publishOrders存储过程名你数据库有这个存储过程吗
      

  2.   

    调用名字叫PublishOrders的存储过程。存储过程的写法楼主百度一下就知道了。
      

  3.   

    写在数据库里吗?不会写呀:(百度查了一些没看懂,以前学习时都是直接写SQL语句的:(
      

  4.   

    那就别用存储过程了
    直接SQL语句得了
      

  5.   

    学习ASP。NET要学的东西太多了:(有没有SQLHELPER.cs不是用存储过程的呀,分享 一个,谢谢了!
      

  6.   

                string sql="select * from Users where UserName=@UserName";
                SqlCommand cmd = new SqlCommand();
                //定义对象资源保存的范围,一旦using范围结束,将释放对方所占的资源
                using (SqlConnection conn = new SqlConnection(SqlHelper.ConnStr))
                {
                    //打开连接
                    conn.Open();
                    //调用执行方法,因为没有参数,所以最后一项直接设置为null
                    int xcl = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, sql, new SqlParameter("@UserName", "068201"));
                    Response.Write(xcl);
                    Response.Write("<font color=red>操作完成!请检查数据库!</font>");
                }
    可以这样,CommandType.Text,就直接用SQL语句了:)但返回值一直是-1好像没成功:(
      

  7.   

    ExecuteNonQuery(connectionString, CommandType.Text, commandText, params SqlParameter[] commandParameters)
    看看sqlhelper,petshop
      

  8.   

    改一下就可以了。。把存储过程改为SQL语句CommandType.Text
      

  9.   

    你得知道,SqlHelper一般用在三层构架的网站中
    SqlHelper放在数据访问层DAL中要学习SqlHelper的使用方法,下一个开源的系统看一下就行了

    Microsoft .NET Pet Shop 4.0

      

  10.   

    当前上下文中不存在名称“CommandType”
    using 么来着?
      

  11.   

    /*
     *创建人:xx
     *创建时间:2011-1-16 8:50
     *说明:数据库助手类
     */
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    using System.Data;
    using System.Configuration;namespace DAL
    {
        public class SQLHelper
        {
            private SqlConnection conn = null;
            private SqlCommand cmd = null;
            private SqlDataReader sdr = null;
            public SQLHelper()
            {
                string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
                conn = new SqlConnection(connStr);
            }        #region 获取Conn        /// <summary>
            /// 获取Conn
            /// </summary>
            /// <returns></returns>
            private SqlConnection GetConn()
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                return conn;
            }        #endregion        #region 该方法执行传入的SQL增删改语句或存储过程        /// <summary>
            /// 该方法执行传入的SQL增删改语句或存储过程
            /// </summary>
            /// <param name="sql">要执行SQL增删改的语或存储过程</param>
            /// <returns>返回更新的记录数</returns>
            public int ExecuteNonQuery(string cmdText, CommandType ct)
            {
                //第一种用法
                //int res;
                //try
                //{
                //    cmd = new SqlCommand(sql, GetConn());
                //    res = cmd.ExecuteNonQuery();
                //}
                //catch (Exception ex)
                //{            //    throw ex;
                //}
                //finally
                //{
                //    if (conn.State == ConnectionState.Closed)
                //    {
                //        conn.Close();
                //    }            //}
                //return res;            //第二种用法
                int res;
                using (cmd = new SqlCommand(cmdText, GetConn()))
                {
                    cmd.CommandType = ct;
                    res = cmd.ExecuteNonQuery();
                }
                return res;
            }        #endregion        #region 执行带参数的SQL增删改语句或存储过程        /// <summary>
            /// 执行带参数的SQL增删改语句或存储过程
            /// </summary>
            /// <param name="cmdText">SQL增删改语句或存储过程</param>
            /// <param name="paras">参数集合</param>
            /// <param name="ct">执行cmdText的类型</param>
            /// <returns></returns>
            public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)
            {
                int res;
                using (cmd = new SqlCommand(cmdText, GetConn()))
                {
                    cmd.CommandType = ct;
                    cmd.Parameters.AddRange(paras);
                    res = cmd.ExecuteNonQuery();
                }
                return res;
            }        #endregion        #region 执行Sql查询语句或存储过程        /// <summary>
            /// 执行Sql查询语句或存储过程
            /// </summary>
            /// <param name="cmdText">sql查询语句或存储过程</param>
            /// <param name="ct">执行cmdText的类型</param>
            /// <returns></returns>
            public DataTable ExecuteQuery(string cmdText, CommandType ct)
            {
                DataTable dt = new DataTable();
                cmd = new SqlCommand(cmdText, GetConn());
                cmd.CommandType = ct;
                using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    dt.Load(sdr);
                }
                return dt;
            }        #endregion        #region  执行带参数的SQL查询语句或存储过程        /// <summary>
            /// 执行带参数的SQL查询语句或存储过程
            /// </summary>
            /// <param name="cmdText">SQL查询语句或存储过程</param>
            /// <param name="paras">参数集合</param>
            /// <param name="ct">执行cmdText的类型</param>
            /// <returns></returns>
            public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
            {
                DataTable dt = new DataTable();
                cmd = new SqlCommand(cmdText, GetConn());
                cmd.Parameters.AddRange(paras);
                cmd.CommandType = ct;
                using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    dt.Load(sdr);
                }
                return dt;
            }        #endregion
        }
    }
    /*
     *创建人:xx
     *创建时间:2011-1-16 8:50
     *说明:新闻类
     */using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Model;
    using System.Data;
    using System.Data.SqlClient;
    namespace DAL
    {
        public class NewsDAO
        {
            private SQLHelper sqlhelper;
            public NewsDAO()
            {
                sqlhelper = new SQLHelper();
            }        #region 删除新闻(连同其下新闻评论一起删除) 
            /// <summary>
            /// 删除新闻(连同其下新闻评论一起删除)
            /// </summary>
            /// <param name="n">新闻ID</param>
            /// <returns></returns>
            public bool Delete(string id)
            {
                bool flag = false;
                SqlParameter[] paras = {
                                       new SqlParameter("@id",id)
                                       };
                int res = sqlhelper.ExecuteNonQuery("news_delete", paras, CommandType.StoredProcedure);
                if (res > 0)
                {
                    flag = true;
                }
                return flag;
            }         #endregion
        }
    }
    数据库中存储过程是这样写的:
    这是其中一个删除新闻的存储过程,其他的增、查、改都是一样的。
     USE [newssystem]
    GO
    /****** 对象:  StoredProcedure [dbo].[news_delete]    脚本日期: 02/08/2011 18:32:18 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author: zhangshaopeng
    -- Create date: 2011-1-17 17:24
    -- Description: 删除新闻
    -- =============================================
    CREATE PROCEDURE [dbo].[news_delete]
    @id int
    AS
    BEGIN
    --先删除该新闻下的评论
    delete from comment where newsId=@id  
    --再删除新闻本身
    delete from news where id=@id
    END
      

  12.   

    谢谢楼上兄弟姐妹们,终于基本搞懂了:)我用CommandType.Text:)不要存储过程:)
    另外在问个小问题,怎么不可以调试,但可以右击在浏览器中查看,不过一次打开两个窗口:(郁闷中:(