WebService的疑问

wjbmbl 2008-02-08 10:58:56
据说WebService挺牛,能包含公用函数,于是偶今天试了一把。
在网站力加了个webservice里面的代码是:
/// <summary>
/// 执行非查询语句,即增删改命令
/// </summary>
/// <param name="strSql">SQL语句</param>
public void ExcuteSql(string strSql)
{
SqlConnection myCon = new SqlConnection();
myCon.ConnectionString = @"Data Source=DLPEC-C70214997\SQLEXPRESS;Initial Catalog=eShop;Integrated Security=True;Pooling=False";
myCon.Open();

SqlCommand myCMD = myCon.CreateCommand();
myCMD.CommandText = strSql;
myCMD.ExecuteNonQuery();

myCon.Close();
}
/// <summary>
/// 执行查询语句并返回一个数据表对象
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <returns>DataTable</returns>
public DataTable ExecuteSelect(string strSql)
{
try
{
SqlConnection myCon = new SqlConnection();
myCon.ConnectionString = @"Data Source=DLPEC-C70214997\SQLEXPRESS;Initial Catalog=eShop;Integrated Security=True;Pooling=False";
myCon.Open();

SqlDataAdapter adapter = new SqlDataAdapter(strSql, myCon);
DataSet ds = new DataSet();
adapter.Fill(ds, "table");
return ds.Tables["table"];

myCon.Close();
}
catch
{
return null;
}
}
但是为什么,调用时,增删改的就不起作用呢?
请大虾指点下。
...全文
111 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjbmbl 2008-02-09
  • 打赏
  • 举报
回复
楼上的大虾说的安全性,应该怎样用WebService才会不暴露数据库呢?
我是从书上学的,照书抄的。请指点一下,因为这样的代码似乎没办法上班吧。。。。
听君一言,胜读一年书哇哈哈~你不说的话,我还以为我已经学会WebService了,看来我太天真了。
还有,如果不直接传SQL语句,如何才能实现以上的功能呢?
麻烦了,实在谢谢了!

wjbmbl 2008-02-09
  • 打赏
  • 举报
回复
哇哇,我顶!
syeerzy 2008-02-09
  • 打赏
  • 举报
回复
不能成功你设个断点就知道了,十有八九是Sql语句里有问题,你要注意到在查询里面你用了 try-catch 而另外一个函数却没有try-catch,其实在这个地方try-catch是必须的,因为这两个函数都极其依赖于输入,而输入的要求也非常严格,必须考虑输入非法的情况。


另外,WebService 不应该这样用的~~ 安全性太差了, 哪能就直接传Sql语句呢? 你这么做等同于把数据库给暴露出来了,那还不如干脆让客户端去连数据库好了。。。


还有WebService的函数最好不要返回DataTable ,要返回成DataSet好一些,这样很多场合可以一次执行多个语句,比如执行一个查询和一个统计是最经常的,而且不是所有的客户端都有能力合理并正确地反序列化出这个DataTable的,尽量用DataSet吧
  • 打赏
  • 举报
回复
你有没有调用这个服务成功呀。

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧