如何将数据同时保存在本机和服务器上? 如题! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我个人认为,这是一个数据一致性问题,数据保存在哪,要保存几个地方,无论是什么格式,都不是大问题,最多是重复几次就行了,但根本问题是该如何保证数据的一致性,不能说在一个地方存储没有问题,但在第二个地方就出问题了,这样,二个地方的数据就不致性了.基于此,建议如下:1.把源数据放在DATASET中2.新建一个DATASET,它与源数据具有相同的数据结构和数据3.对新建DATASET按目标数据库的要求进行各种操作,并保存.若成功,则记录,若不成功,则回滚.4.若上一步成功,则继续下一个保存;若不成,有几个选择:4.1删除以往的数据:4.2继续下一个数据保存4.3中止,并记录错误此时,你有源数据的各种状态,有数据保存的成功与否,对如何保证一致性就比较容易了 :zdhsnail 我现在可以保存在本机上了,而且用了事务来处理数据一致性的问题.主要是不知道怎么保存到服务器上去? 那你不如做个CS程序。通过CS程序来发布你的信息。这样可以实现本地和服务器同时操作。 :iuhxq 能不能说详细点啊 曾经写或一个WEB打印方法可以借鉴一下,DataTable 中数据可以从服务器或本地读取,但本地读取数据的需要认证或者第三方插件了 /// <summary> /// 打印 /// </summary> /// <param name="dt">打印表</param> /// <param name="sError">错误</param> /// <returns></returns> public static string WebPrint(DataTable dt, out string sError) { StringBuilder Sbder = new StringBuilder(); sError = ""; //"<html> <body><form id='Form1' method='post' runat='server'>"+ string colHeaders = "<object id='WebBrowser'width=0 height=0 classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2' VIEWASTEXT></object>" + "<table border=1 cellpadding='0' cellspacing='0' bordercolor='#000000'><tr>"; if (dt == null) { sError = "无法打印"; return sError; } for (int i = 0; i < dt.Columns.Count; i++) { colHeaders += "<td align=\"center\">" + dt.Columns[i].ColumnName + "</td>"; } colHeaders += "</tr>"; Sbder.Append(colHeaders); for (int r = 0; r < dt.Rows.Count; r++) { Sbder.Append("<tr>"); for (int c = 0; c < dt.Columns.Count; c++) { Sbder.Append("<td>"); object obj = dt.Rows[r][c] == System.DBNull.Value ? " " : dt.Rows[r][c]; Sbder.Append(obj); Sbder.Append("</td>"); } Sbder.Append("</tr>"); } Sbder.Append("</table>"); //Sbder.Append("</form></body></html>"); colHeaders = Sbder.ToString(); colHeaders += "<script language='javascript'>document.all.WebBrowser.ExecWB(7,1); window.opener=null;window.close();</script>"; return (colHeaders); } c/s就模式就方便了,可以通过WEBSERVRICE传输数据,下载数据,打印本地 c/s模式以前写过下载打印模板可以借鉴一下下载数据需要改动 public static string FilePath(string webpath,string name) { //RegistryKey pRegKey = Registry.CurrentUser; RegistryKey RegKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS\\CURRENTVERSION\\EXPLORER\\SHELL FOLDERS"); string dirPath = RegKey.GetValue("Desktop").ToString() +@"\"+"文件夹"; if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } string filePath = dirPath+@"\"+name; System.Net.WebClient client = new System.Net.WebClient(); string webPlace = 虚拟目录名称+name; if (!File.Exists(filePath)) { client.DownloadFile(webpath.Replace("Service.asmx", webPlace), filePath); } else { if (MessageBox.Show("本地已经存在打印模板,是否重新下载?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { client.DownloadFile(webpath.Replace("Service.asmx", webPlace), filePath); } } return filePath; } GridView 如何用后台代码隐藏列呀? 如何绑定动态menu控件 关于repeater控件显示数据长度问题 .net的引用问题!在线等!!!! 《急!!!》视频抓图 如何保存为静态页面? access数据库的连接字符串? 刚刚学习asp.net,问个菜鸟问题! 请问javascript怎么读取服务器控件的数据呢? 问一个SQL语句的问题!!!!! 网页重定向问题 xml xsl 生成 html(asp.net2.0)
2.新建一个DATASET,它与源数据具有相同的数据结构和数据
3.对新建DATASET按目标数据库的要求进行各种操作,并保存.若成功,则记录,若不成功,则回滚.
4.若上一步成功,则继续下一个保存;若不成,有几个选择:
4.1删除以往的数据:
4.2继续下一个数据保存
4.3中止,并记录错误此时,你有源数据的各种状态,有数据保存的成功与否,对如何保证一致性就比较容易了
我现在可以保存在本机上了,而且用了事务来处理数据一致性的问题.
主要是不知道怎么保存到服务器上去?
能不能说详细点啊
/// <summary>
/// 打印
/// </summary>
/// <param name="dt">打印表</param>
/// <param name="sError">错误</param>
/// <returns></returns>
public static string WebPrint(DataTable dt, out string sError)
{
StringBuilder Sbder = new StringBuilder(); sError = "";
//"<html> <body><form id='Form1' method='post' runat='server'>"+
string colHeaders = "<object id='WebBrowser'width=0 height=0 classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2' VIEWASTEXT></object>"
+ "<table border=1 cellpadding='0' cellspacing='0' bordercolor='#000000'><tr>";
if (dt == null)
{
sError = "无法打印";
return sError;
} for (int i = 0; i < dt.Columns.Count; i++)
{
colHeaders += "<td align=\"center\">" + dt.Columns[i].ColumnName + "</td>";
}
colHeaders += "</tr>";
Sbder.Append(colHeaders);
for (int r = 0; r < dt.Rows.Count; r++)
{
Sbder.Append("<tr>");
for (int c = 0; c < dt.Columns.Count; c++)
{
Sbder.Append("<td>");
object obj = dt.Rows[r][c] == System.DBNull.Value ? " " : dt.Rows[r][c];
Sbder.Append(obj);
Sbder.Append("</td>");
}
Sbder.Append("</tr>");
}
Sbder.Append("</table>");
//Sbder.Append("</form></body></html>");
colHeaders = Sbder.ToString();
colHeaders += "<script language='javascript'>document.all.WebBrowser.ExecWB(7,1); window.opener=null;window.close();</script>";
return (colHeaders);
}
public static string FilePath(string webpath,string name)
{ //RegistryKey pRegKey = Registry.CurrentUser;
RegistryKey RegKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS\\CURRENTVERSION\\EXPLORER\\SHELL FOLDERS"); string dirPath = RegKey.GetValue("Desktop").ToString() +@"\"+"文件夹";
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
string filePath = dirPath+@"\"+name; System.Net.WebClient client = new System.Net.WebClient();
string webPlace = 虚拟目录名称+name;
if (!File.Exists(filePath))
{
client.DownloadFile(webpath.Replace("Service.asmx", webPlace), filePath);
}
else
{
if (MessageBox.Show("本地已经存在打印模板,是否重新下载?",
"提示",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{
client.DownloadFile(webpath.Replace("Service.asmx", webPlace), filePath);
} }
return filePath;
}