保存超时,为什么数据却保存成功?

liduoduo 2012-03-11 05:58:09
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(orderdate,ordernumber,address,customer,phone,specification,receivable,remark,station,depot,arristationdate) Values(@orderdate,@ordernumber,@address,@customer,@phone,@specification,@receivable,@remark,@station,@depot,@arristationdate)";

Cmd.Parameters.Add(new SqlParameter("@orderdate", dr["orderdate"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@ordernumber", dr["ordernumber"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@address", dr["address"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@customer", dr["customer"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@phone", dr["phone"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@specification", dr["specification"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@receivable", dr["receivable"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@remark", dr["remark"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@station", dr["station"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@depot", dr["depot"].ToString()));
Cmd.Parameters.Add(new SqlParameter("@arristationdate", dr["arristationdate"].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)
{

dataGridView1.EndEdit();
bscustomers.EndEdit();

DataTable result = (DataTable)bscustomers.DataSource;
DataTable tableAdded = result.GetChanges(DataRowState.Added);
if (tableAdded != null && tableAdded.Rows.Count > 0)
{
string strvalue = s.InsertData(tableAdded);

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

}
}

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

但是当保存数据超时时,程序出错,提示超时。数据没提示成功,但我查了数据库,数据居然已被插入成功了。我估计程序连
if (strvalue == "true")这句也还没开始执行就超时了,请帮忙解答,有什么解决办法,谢谢帮忙


...全文
226 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liduoduo 2012-03-12
  • 打赏
  • 举报
回复
高手帮帮忙
wuqiyang1338 2012-03-12
  • 打赏
  • 举报
回复
JavaScript 代码有错误 不关后台代码的事
cjlu98 2012-03-12
  • 打赏
  • 举报
回复
你把后面的try.....catch....final 去掉 试试

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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