我有一个正在调用的C#asmx Web服务,我看到结果在客户端上返回,所以我知道代码运行完成而没有抛出任何异常。这是Web服务类:
namespace App_WebRole
{
/// <summary>
/// Summary description for SubscriptionStatus
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class SubscriptionStatus : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
DataSet1 dataSet = new DataSet1();
DataSet1TableAdapters.StatusRequestsTableAdapter statusTableAdapter = new DataSet1TableAdapters.StatusRequestsTableAdapter();
DataSet1.StatusRequestsRow newRow = dataSet.StatusRequests.NewStatusRequestsRow();
newRow.ApplicationID = "Test";
newRow.RequestDate = DateTime.Now;
dataSet.StatusRequests.Rows.Add(newRow);
dataSet.StatusRequests.AcceptChanges();
statusTableAdapter.Update(dataSet);
return "Hello World 2";
}
}
}
我在我的机器上本地运行本地SQL Server Express数据库,我没有看到任何记录被插入到相应的表中。
如果我更改了返回值,我确实在客户端看到了更改的值。另外,我查看了本地网站目录中的web.config文件,它具有本地SQL Server Express数据库的连接字符串。
答案 0 :(得分:1)
在更新之前接受更改将导致更新无法查看任何需要更新的内容。删除dataSet.StatusRequests.AcceptChanges();
行。更新将在您完成后接受更改。
答案 1 :(得分:0)
实际上,为了实现这一点,我在应用程序中使用DataSet(.xsd)而不是使用LINQ to SQL类(.dbml)。詹姆斯的回答实际上可能已经完成了这个伎俩,但是当他发布它时,我已经将它转换为dbml并让它像魅力一样工作。