日期:2014-05-18  浏览次数:20530 次

sqlHelper类问题
本人下载了一个网站源代码,使用了sqlHelper类,但是使用的sqlHelper.dll而不是sqlHelper.cs
使用了语句sqlHelper.RunProc("Pr_GetUserLogin", paramList, out dr); dr老是为null 
我觉得sqlHelper.RunProc肯定是调用了web.config中的appSettings,但可能是和web.config中的appSettings名字不同
所以造成了错误,请问我怎么看sqlHelper.dll中的RunProc函数定义啊


------解决方案--------------------
sqlhelper提供源代码呀。下载看看就可以了。还有sqlHelper.RunProc("Pr_GetUserLogin", paramList, out dr); dr是需要你定义的呀。你不定义当然就是null

------解决方案--------------------
用dll反编译工具
------解决方案--------------------
http://topic.csdn.net/u/20080924/08/01355563-3db6-4e63-a6c3-cf3dfcdab616.html
http://topic.csdn.net/u/20080925/17/647c91c7-bfd6-402a-b6ba-409d8a4d8881.html
------解决方案--------------------
C# code
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.ComponentModel;

namespace SQLHelper
{
    /// <summary>
    /// SQLHelper类封装对SQL Server数据库的添加、删除、修改和选择等操作
    /// </summary>
    public class SQLHelper
    {
        /// 连接数据源
        private SqlConnection myConnection = null;
        private readonly string RETURNVALUE = "RETURNVALUE";

        /// <summary>
        /// 打开数据库连接.
        /// </summary>
        private void Open() 
        {
            // 打开数据库连接
            if (myConnection == null) 
            {
                myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["gzma03578ConnectionString"].ConnectionString);                
            }                
            if(myConnection.State == ConnectionState.Closed)
            {   
                try
                {
                    ///打开数据库连接
                    myConnection.Open();
                }
                catch(Exception ex)
                {
                    SystemError.CreateErrorLog(ex.Message);
                }
                finally
                {
                    ///关闭已经打开的数据库连接                
                }
            }
        }

        /// <summary>
        /// 关闭数据库连接
        /// </summary>
        public void Close() 
        {
            ///判断连接是否已经创建
            if(myConnection != null)
            {
                ///判断连接的状态是否打开
                if(myConnection.State == ConnectionState.Open)
                {
                    myConnection.Close();
                }
            }
        }

        /// <summary>
        /// 释放资源
        /// </summary>
        public void Dispose() 
        {
            // 确认连接是否已经关闭
            if (myConnection != null) 
            {
                myConnection.Dispose();
                myConnection = null;
            }                
        }
        
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName">存储过程的名称</param>
        /// <returns>返回存储过程返回值</returns>
        public int RunProc(string procName) 
        {
            SqlCommand cmd = CreateProcCommand(procName, null);
            try
            {
                ///执行存储过程
                cmd.ExecuteNonQuery();
            }
            catch(Exception ex)
            {
                ///记录错误日志
                SystemError.CreateErrorLog(ex.Message);
            }
            finally
            {
                ///关闭数据库的连接
                Close();
            }
            
            ///返回存储过程的参数值
            return (int)cmd.Parameters[RETURNVALUE].Value;
        }

------解决方案--------------------
C# code
/// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="procName">存储过程名称</param>
        /// <param name="prams">存储过程所需参数</param>