Here are some save function for some situations:

Yes/No

/// <summary>
///保存数据到WCF
/// </summary>
/// <param name="ds"></param>
public void SaveDataSetSingleOrTwoTables(DataSet ds, string parent, string child)
{
string message = "您想保存数据吗?";
string caption = "保存数据"; if (ds.HasChanges())
{
DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
try
{
//DataSet dsChanged = ds.GetChanges();
DataTable tblParent = null;
DataTable tblChild = null; if (!string.IsNullOrEmpty(parent))
{
tblParent = ds.Tables[parent].GetChanges(); //error if table not existing
} if (!string.IsNullOrEmpty(child))
{
tblParent = ds.Tables[child].GetChanges(); //error if table not existing
} DataSet ds1 = new DataSet();
if (tblParent != null) ds1.Tables.Add(tblParent);
DataSet ds2 = new DataSet();
if (tblChild != null) ds2.Tables.Add(tblChild); //call save method(tblParent, tblChild, null);
TJ_Nurse_Service.NurseSvc.QualityCheckIBLLClient saveData = new TJ_Nurse_Service.NurseSvc.QualityCheckIBLLClient();
saveData.QualityCheckUpdate(ds1, ds2, null);
ds.AcceptChanges();
MessageBox.Show("数据已保存。");
}
catch (Exception ex)
{
Error.ErrProc(ex);
MessageBox.Show("由于某种原因,数据不能保存。数据丢失。");
ds.RejectChanges();
return;
} }
else
{
ds.RejectChanges();
MessageBox.Show("数据没有保存。已修改的已恢复。");
}
}
else
{
MessageBox.Show("没有数据要保存。");
ds.RejectChanges();
} }

Yes/No/Cancel

 /// <summary>
/// 保存数据到WCF
/// </summary>
/// <param name="ds"></param>
/// <param name="parent"></param>
/// <param name="child"></param>
public void SaveDataSetSingleOrTwoTablesWithCancel(DataSet ds, string parent, string child)
{
string message = "您想保存数据吗";
string caption = "保存数据"; if (ds.HasChanges())
{
DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
try
{
//DataSet dsChanged = ds.GetChanges();
DataTable tblParent = null;
DataTable tblChild = null; if (!string.IsNullOrEmpty(parent))
{
tblParent = ds.Tables[parent].GetChanges(); //error if table not existing
} if (!string.IsNullOrEmpty(child))
{
tblParent = ds.Tables[child].GetChanges(); //error if table not existing
} DataSet ds1 = new DataSet();
if (tblParent != null) ds1.Tables.Add(tblParent);
DataSet ds2 = new DataSet();
if (tblChild != null) ds2.Tables.Add(tblChild); //call save method(tblParent, tblChild, null);
TJ_Nurse_Service.NurseSvc.QualityCheckIBLLClient saveData = new TJ_Nurse_Service.NurseSvc.QualityCheckIBLLClient();
saveData.QualityCheckUpdate(ds1, ds2, null);
ds.AcceptChanges();
MessageBox.Show("数据已保存。");
}
catch (Exception ex)
{
Error.ErrProc(ex);
ds.RejectChanges();
MessageBox.Show("由于某种原因,数据不能保存。数据丢失。");
return;
} }
else if (result == DialogResult.No)
{
ds.RejectChanges();
MessageBox.Show("数据没有保存。已修改的已恢复。");
return;
}
else
{
MessageBox.Show("您修改的数据没有保存。但您可以保存。");
return;
}
}
else
{
MessageBox.Show("没有数据要保存。");
ds.RejectChanges();
} }

Yes/No => WCF

/// <summary>
///保存数据到WCF
/// </summary>
/// <param name="ds"></param>
public void SaveDataSetSingleOrTwoTables(DataSet ds, string parent, string child)
{
string message = "您想保存数据吗?";
string caption = "保存数据"; //index_item data changed?
UpdateCurrentDetail(); if (ds.HasChanges())
{
DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
try
{
//DataSet dsChanged = ds.GetChanges();
DataTable tblParent = null;
DataTable tblChild = null; if (!string.IsNullOrEmpty(parent))
{
tblParent = ds.Tables[parent].GetChanges(); //error if table not existing
} if (!string.IsNullOrEmpty(child))
{
tblChild = ds.Tables[child].GetChanges(); //error if table not existing
} DataSet ds1 = new DataSet();
if (tblParent != null) ds1.Tables.Add(tblParent);
DataSet ds2 = new DataSet();
if (tblChild != null) ds2.Tables.Add(tblChild); //call save method(tblParent, tblChild, null);
TJ_Nurse_Service.NurseSvc.QualityCheckIBLLClient saveData = new TJ_Nurse_Service.NurseSvc.QualityCheckIBLLClient();
saveData.QualityCheckUpdate(ds1, ds2, null);
ds.AcceptChanges();
MessageBox.Show("数据已保存。");
}
catch (Exception ex)
{
Error.ErrProc(ex);
MessageBox.Show("由于某种原因,数据不能保存。数据丢失。");
ds.RejectChanges();
return;
} }
else
{
ds.RejectChanges();
MessageBox.Show("数据没有保存。已修改的已恢复。");
}
}
else
{
MessageBox.Show("没有数据要保存。");
ds.RejectChanges();
} }

Yes/No/Cancel

/// <summary>
/// 保存数据到WCF
/// </summary>
/// <param name="ds"></param>
/// <param name="parent"></param>
/// <param name="child"></param>
public void SaveDataSetSingleOrTwoTablesWithCancel(DataSet ds, string parent, string child)
{
string message = "您想保存数据吗";
string caption = "保存数据"; //index_item data changed?
UpdateCurrentDetail(); if (ds.HasChanges())
{
DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
try
{
//DataSet dsChanged = ds.GetChanges();
DataTable tblParent = null;
DataTable tblChild = null; if (!string.IsNullOrEmpty(parent))
{
tblParent = ds.Tables[parent].GetChanges(); //error if table not existing
} if (!string.IsNullOrEmpty(child))
{
tblChild = ds.Tables[child].GetChanges(); //error if table not existing
} DataSet ds1 = new DataSet();
if (tblParent != null) ds1.Tables.Add(tblParent);
DataSet ds2 = new DataSet();
if (tblChild != null) ds2.Tables.Add(tblChild); //call save method(tblParent, tblChild, null);
TJ_Nurse_Service.NurseSvc.QualityCheckIBLLClient saveData = new TJ_Nurse_Service.NurseSvc.QualityCheckIBLLClient();
saveData.QualityCheckUpdate(ds1, ds2, null);
ds.AcceptChanges();
MessageBox.Show("数据已保存。");
}
catch (Exception ex)
{
Error.ErrProc(ex);
ds.RejectChanges();
MessageBox.Show("由于某种原因,数据不能保存。数据丢失。");
return;
} }
else if (result == DialogResult.No)
{
ds.RejectChanges();
MessageBox.Show("数据没有保存。已修改的已恢复。");
return;
}
else
{
MessageBox.Show("您修改的数据没有保存。但您可以保存。");
return;
}
}
else
{
MessageBox.Show("没有数据要保存。");
ds.RejectChanges();
} }

SaveData Functions的更多相关文章

  1. asp.net MVC helper 和自定义函数@functions小结

    asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...

  2. 【跟着子迟品 underscore】Array Functions 相关源码拾遗 & 小结

    Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...

  3. 【跟着子迟品 underscore】Object Functions 相关源码拾遗 & 小结

    Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...

  4. ajax的使用:(ajaxReturn[ajax的返回方法]),(eval返回字符串);分页;第三方类(page.class.php)如何载入;自动加载函数库(functions);session如何防止跳过登录访问(构造函数说明)

    一.ajax例子:ajaxReturn("ok","eval")->thinkphp中ajax的返回值的方法,返回参数为ok,返回类型为eval(字符串) ...

  5. QM模块包含主数据(Master data)和功能(functions)

    QM模块包含主数据(Master data)和功能(functions)   QM主数据   QM主数据 1 Material   Master MM01/MM02/MM50待测 物料主数据 2 Sa ...

  6. jQuery String Functions

    In today's post, I have put together all jQuery String Functions. Well, I should say that these are ...

  7. 2-4. Using auto with Functions

    在C++14中允许使用type deduction用于函数参数和函数返回值 Return Type Deduction in C++11 #include <iostream> using ...

  8. [Python] Pitfalls: About Default Parameter Values in Functions

    Today an interesting bug (pitfall) is found when I was trying debug someone's code. There is a funct ...

  9. Kernel Functions for Machine Learning Applications

    In recent years, Kernel methods have received major attention, particularly due to the increased pop ...

随机推荐

  1. Knight Moves

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  2. 反射和动态代理实现上下文切入AOP效果

    Java的反射框架提供了动态代理机制,允许在运行期对目标类生成代理,避免重复开发,实现上下文切入的功能. 代码是最好的交流语言: Subject接口 RealSubject实现接口 SubjectHa ...

  3. IE下Array.prototype.slice.call(params,0)

    i8 不支持 Array.prototype.slice.call(params,0) params可以是 HTMLCollection.类数组.string字符串

  4. BZOJ4699 : 树上的最短路

    这道题主要是要解决以下两个问题: 问题1: 给定一个点$x$,如何取出所有经过它的下水道? 一条下水道经过$x$等价于它起点在$x$的子树里面且终点不在$x$的子树里面,或者两端点的lca就是$x$. ...

  5. 【BZOJ1984】月下“毛景树” 树链剖分+线段树

    [BZOJ1984]月下"毛景树" Description 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园. 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校 ...

  6. Java 动态代理

    被代理的接口特点: 1. 不能有重复的接口,以避免动态代理类代码生成时的编译错误. 2. 这些接口对于类装载器必须可见,否则类装载器将无法链接它们,将会导致类定义失败. 3. 需被代理的所有非 pub ...

  7. 关于struts2中表单提交时,中文乱码问题的解决

    http://blog.csdn.net/hjw506848887/article/details/8966194 今天写项目时,突然遇到了struts2中表单提交的中文乱码问题,调了好久就是不知道答 ...

  8. Android 摇一摇 之 传感器片

    要监视原始的传感器数据,你需要实现两个通过SensorEventListener接口暴露的回调方法:onAccuracyChanged()和onSensorChanged(). 传感器数据的速度值,这 ...

  9. Codeforce - Street Lamps

    Bahosain is walking in a street of N blocks. Each block is either empty or has one lamp. If there is ...

  10. 自己签发免费ssl证书

    自己制作ssl证书:自己签发免费ssl证书,为nginx生成自签名ssl证书 这里说下Linux 系统怎么通过openssl命令生成 证书. 首先执行如下命令生成一个keyopenssl genrsa ...