【C#】怎样用DataSet读取XML,然后把DataSet的数据更新到数据库?

在此之前是:先把Database(SQLServer)的数据放到DataSet里,然后把DataSet里的数据写到XML里。而现在是:此处用DataSet读取之前的XML... 在此之前是:
先把Database(SQL Server)的数据放到DataSet里,然后把DataSet里的数据写到XML里。
而现在是:
此处用DataSet读取之前的XML,然后把DataSet的数据再 更新 到数据库?注意是更新(update),我而不是(NOT insert)放入新数据。
展开
 我来答
百度网友964cf3698
2011-05-25 · TA获得超过1453个赞
知道大有可为答主
回答量:1653
采纳率:50%
帮助的人:1376万
展开全部
msdn上讲了 update前accept我这台机子没有装msdn 你搜下
更多追问追答
追问
我又试过acceptChanges(),如果load xml之后dataset还有改动是可以的,但是没有改动就直接update database就不行了。。。
追答
恩 我再看看 试试 就是要改动啊 两个dataset merge么?
linxw1685
2011-05-26 · 超过34用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:108万
展开全部
DataSet或者DataTable里面有一个WriteXML和ReadXML,还有两个对应的读取表结构的方法。从XML中读取数据到DataSet后,可粗拿搜以使用第三方的工具,将敏手DataSet里的内容写入到数据库,但是这里注意一点,就岩历是列的ID是一定要有的。
追问
第三方工具具体是什么啊?如果直接用SqlDataadapter.update()为什么不可以呢?
追答
CodeSmith,好像是叫这个名字,可以关注一下。如果是用微软本身的,有一个数据集。如果是强类型的,可以考虑Linq to SQL。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niaoren——1d9f
2011-05-25 · TA获得超过119个赞
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:96.9万
展开全部
在Xml中存储的时候把Id存下就可以了,利用ID update就可以了,有困难吗?
追问
真有困难...,具体怎么用ID update啊?
追答
后面也就没必要再把数据从xml放到dataset中了吧,直接从xml中读取不管是拼个字符串还是linq往数据库里插入就行了。
如果还不明白说明两个问题,
1.楼主不会解析xml--建议查资料
2.楼主不会数据库操作--建议查资料
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龙and迪
2011-05-25 · TA获得超过159个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:135万
展开全部
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// "uid=sa":连接数据蔽昌库的用户名为sa.
// "password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".
// "initial catalog=Northwind":使用的数据源为"Northwind"这个数据库.他的别名为"Database",本句可以写成"Database=Northwind".
// "Server=YourSQLServer":使用名为"YourSQLServer"宏仿扒的服务器.他的别名为"Data Source","Address","Addr".
// " Connect Timeout=30":连接超时时间为30秒.(根据情况添加)
// PS:
// 1.你的SQL Server必大消须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要使用"uid"和"password"这样的方式来登录,而需要使用"Trusted_Connection=SSPI"来进行登录.
// 2. 如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址.
string strConnection = "Trusted_Connection=SSPI;";
strConnection += "database=NTF_Navision_enlistment60;Server=CAIXIATA-6BE823;";
strConnection += "Connect Timeout=30";
using (SqlConnection objConnection = new SqlConnection(strConnection))
{
objConnection.Open();
// method 1
SqlCommand myCommand = new SqlCommand("select * from Couse", objConnection);

Console.WriteLine("open");
SqlDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
Console.WriteLine(myReader.GetFieldType(0));
Console.WriteLine(myReader.GetFieldType(1));
Console.WriteLine(myReader.GetFieldType(2));
Console.WriteLine(myReader.GetDecimal(0));
Console.WriteLine(myReader.GetDecimal(1));
Console.WriteLine(myReader.GetDecimal(2));
}
myReader.Close();

// method 2
SqlDataAdapter myCommandd = new SqlDataAdapter("select * from Couse", objConnection);
DataSet ds = new DataSet();
myCommandd.Fill(ds, "Couse");
DataTable dt = ds.Tables["couse"];
Console.WriteLine(dt.Columns[0].ToString());
Console.WriteLine(dt.DefaultView.Count);
}
}
}
}
追问
谢谢,可具体怎么把dataset的data放回database里呢?
追答
你可以上csdn求助,我现在玩的数据流,代码忘的差不多了,给你指个方向,别忘了给分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式