当前位置:编程学习 > C#/ASP.NET >>

webservice 调用时类出错,如何书写类

我有一个运行良好的解决方案,这个方案下的程序运行正常。
我在这个方案下创建了webservice,在webservice里引用这个项目里的方法。在测试webservice的时候会报如下错误:

ystem.Exception: 系统提示错误:ConnectionString 属性尚未初始化。
   在 Tool.SQLHelper.ExecuteNonQuery(String ConnectionString, String Database, CommandType CommandType, Int32 CommandTimeout, String SqlText, SqlParameter[] SqlParms) 位置 e:\Tool\SQLHelper.cs:行号 283
   在 DAL.SortDAL.Delete(Int32 ID) 位置 e:\DAL\SortDAL.cs:行号 166
   在 BLL.Sort.Delete(Int32 ID) 位置 e:\BLL\Sort.cs:行号 75
   在 WebService.Service1.GetDel(Int32 id) 位置 e:\WebService\Service1.asmx.cs:行号 31

请问:上述是什么原因导致的;还有为webservice提供类需要注意些什么。最好有参考资料。 --------------------编程问答--------------------
引用 楼主 CIOSOFT 的回复:
我有一个运行良好的解决方案,这个方案下的程序运行正常。
我在这个方案下创建了webservice,在webservice里引用这个项目里的方法。在测试webservice的时候会报如下错误:

ystem.Exception: 系统提示错误:ConnectionString 属性尚未初始化。
   在 Tool.SQLHelper.ExecuteNonQuery(String ConnectionString, String Database, CommandType CommandType, Int32 CommandTimeout, String SqlText, SqlParameter[] SqlParms) 位置 e:\Tool\SQLHelper.cs:行号 283
   在 DAL.SortDAL.Delete(Int32 ID) 位置 e:\DAL\SortDAL.cs:行号 166
   在 BLL.Sort.Delete(Int32 ID) 位置 e:\BLL\Sort.cs:行号 75
   在 WebService.Service1.GetDel(Int32 id) 位置 e:\WebService\Service1.asmx.cs:行号 31

请问:上述是什么原因导致的;还有为webservice提供类需要注意些什么。最好有参考资料。


上点代码吧楼主。。 --------------------编程问答-------------------- [WebMethod(Description = "删除")]
        public bool GetDel(int id)
        {
            return Sort.Delete(id);
        }
bll
/// <summary>
/// 删除一条数据
/// </summary>
public bool Delete(int ID)
{
return dal.Delete(ID);
}

dal

 /// <summary>
        /// 删除一条记录
        /// </summary>
        public bool Delete(int ID)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("delete from Sort");
            strSql.Append(" where SortCode=@SortCode");
            SqlParameter[] parameters = 
{
new SqlParameter("@SortCode", SqlDbType.Int,4)
};
            parameters[0].Value = ID;
            object obj = SQLHelper.ExecuteNonQuery(this.ConnectionString, this.Database, CommandType.Text, this.CommandTimeout, strSql.ToString(), parameters);
            return Convert.ToInt32(obj) > 0;
        }

SQLHelper:

public static int ExecuteNonQuery(string ConnectionString, string Database, CommandType CommandType, int CommandTimeout, string SqlText, params SqlParameter[] SqlParms)
        {
            SqlCommand dc = new SqlCommand();
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                try
                {
                    PrepareCommand(dc, conn, Database, CommandType, CommandTimeout, null, SqlText, SqlParms);
                    //执行命令
                    int result = dc.ExecuteNonQuery();
                    return result;
                }
                catch (Exception ex)
                {
                    if (Config.IsDebug)
                    {
                        throw ex;
                    }
                    StringBuilder sb = new StringBuilder();
                    sb.Append(ex.ToString());
                    sb.Append("\r\n");
                    sb.Append("ConnectionString: ");
                    sb.Append(ConnectionString);
                    sb.Append("\r\n");
                    sb.Append("Database: ");
                    sb.Append(Database);
                    sb.Append("\r\n");
                    sb.Append("CommandType: ");
                    sb.Append(CommandType.ToString());
                    sb.Append("\r\n");
                    sb.Append("CommandTimeout: ");
                    sb.Append(dc.CommandTimeout.ToString());
                    sb.Append("\r\n");
                    sb.Append("CommandText: ");
                    sb.Append(dc.CommandText);
                    sb.Append("\r\n");
                    if (SqlParms != null && SqlParms.Length > 0)
                    {
                        sb.Append("SqlParameters: ");
                        sb.Append("\r\n");
                        foreach (SqlParameter parm in SqlParms)
                        {
                            sb.Append(parm.ParameterName);
                            sb.Append("=");
                            sb.Append(Convert.ToString(parm.Value));
                            sb.Append("\r\n");
                        }
                        sb.Append("\r\n");
                    }
                    //throw new DBException(sb.ToString());
                    throw new Exception("系统提示错误:" + ex.Message);
                }
            }
        } --------------------编程问答-------------------- SQLHelper.ExecuteNonQuery(this.ConnectionString,

调试下 this.ConnectionString有值 不 --------------------编程问答-------------------- 独立运行的时候,类没有问题
就是在webservice里调用类,发生问题 --------------------编程问答-------------------- 请高人指点! --------------------编程问答-------------------- 已经搞定,service的webconfig未配置数据库连接地址 --------------------编程问答--------------------
引用 6 楼 CIOSOFT 的回复:
已经搞定,service的webconfig未配置数据库连接地址

所以让你确定  this.ConnectionString是否有值啊
补充:.NET技术 ,  Web Services
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,