请WEBSERVICE高手帮忙解决,谢谢

ivanl 2012-06-03 04:01:08
WEBSERVICE 写的一个插入数据函数

[WebMethod]
public string InsertData(DataTable dt)
{
SqlConnection conn2 = GetConn();
SqlTransaction t = conn2.BeginTransaction();
SqlCommand Cmd = conn2.CreateCommand();
Cmd.Transaction = t;

try
{
foreach (DataRow dr in dt.Rows)
{

Cmd.Parameters.Clear();
Cmd.CommandText = "insert into productdata(address,customer) Values(@address,@customer)";
Cmd.Parameters.Add(new SqlParameter("@address", dr["address"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@customer", dr["customer"].ToString()));
int intResult=Cmd.ExecuteNonQuery();
}
t.Commit();
}
catch (Exception ext)
{
t.Rollback();
return (ext.Message);
}
finally
{
Cmd.Clone();
conn2.Close();
}
return ("true");
}




客户端调用插入数据:

private void buttonSave_Click(object sender, EventArgs e)
{

前面代码省略...

string strvalue = webservice1.InsertData(dt); //dt为一个有1万条记录的DataTable

if (strvalue == "true")
{
MessageBox.Show("保存成功");
}
else
{
MessageBox.Show(strvalue);
}


}


上面是使用C#调用WEBSERVICE的一个函数InsertData插入数据,如果数据提交出错,程序是会自动回滚的,事务处理我测试过了,可以执行。

但是一旦数据量增多,调用webservice1.InsertData(dt); 这句命令后,客户端提示超时。但Dt实际已经传输到了服务器端
并已经插入成功,所以造成一个问题就是:客户端提示传输数据超时错误,但是服务器端已经成功插入数据。请问
应该如何解决?



...全文
103 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ivanl 2012-06-05
  • 打赏
  • 举报
回复
还有没有什么好方法哦?
机器人 2012-06-03
  • 打赏
  • 举报
回复
方法1:延长超时时间

方法2:改为异步提交,但客户得再次查询判断结果

12,163

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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