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提供类需要注意些什么。最好有参考资料。 --------------------编程问答--------------------
上点代码吧楼主。。 --------------------编程问答-------------------- [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未配置数据库连接地址 --------------------编程问答--------------------
所以让你确定 this.ConnectionString是否有值啊
补充:.NET技术 , Web Services